一个基础问题。百万级数据,聚合函数超级慢,来解答的都升职加薪

spirithappy2 2015-08-14 06:34:00
大概100万左右的数据把。需要 max min avg 的查询,还是多条件的。条件数量还不确定

select max(area) from table where arg1=a and arg2=b and arg3= c

现在查询一个max就超级慢。 一个接口得查询 max min avg 3种。
怎么建立个索引呀。
是建立联合索引 arg1 arg2 arg3 吗
还是给xxx这个字段 建立一个索引。
max 的area 字段 和查询条件没有任何关系
...全文
429 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
道玄希言 2015-10-30
  • 打赏
  • 举报
回复
100万左右的数据如果查询慢, 估计你的服务器也可以退休了。
szrgzs 2015-10-30
  • 打赏
  • 举报
回复
多字段的联合索引只适合文字模糊匹配的搜索, 对于需要等值匹配建立多字段联合索引并不合适, 应该建立的是每字段独立的"聚簇索引" 但是一个数据表的独立"聚簇索引" 不应超过5-6个, 并且应该视更新程度 定期对索引进行维护! 没有维护的索引还不如没有索引! 对于要建立索引的字段, 最好是定长, 变长字段非常影响速度, 超长字段最好不要建立索引.
LongRui888 2015-10-30
  • 打赏
  • 举报
回复
试试: arg1 arg2 arg3 area 4个字段的联合索引
  • 打赏
  • 举报
回复
我两百万数据,4秒就执行了,也算快了,在等待范围内
专注or全面 2015-08-14
  • 打赏
  • 举报
回复
没的说,必须是复合索引,查询条件列和聚合列都包含进去
xiongshao1943 2015-08-14
  • 打赏
  • 举报
回复
条件数据不确定,很难建索引来提高性能,你可以看一下常用的查询条件然后再做判断

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧