免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5226 | 回复: 11
打印 上一主题 下一主题

600万条数据,查询如何优化 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-16 17:29 |只看该作者 |倒序浏览
SQL基本如下:

SELECT tid, count( *) AS co, sum(amount ) AS sm
FROM consume
WHERE
STATUS =0 AND ( `rtime` >= '2010-01-01 00:00:00' AND `rtime` <= '2010_01-13 23:59:59')
GROUP BY tid

采用什么方式才能使速度变快,索引?中间表?
请给一个详细的想法,索引哪个字段,临时表怎么建?

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
2 [报告]
发表于 2010-07-17 16:43 |只看该作者
show indexes from consume 结果贴出来看一下
如果没有 (status,rtime ,tid) 的复合索引 ,加一个, 然后explain的结果贴一下看看

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
3 [报告]
发表于 2010-07-18 15:43 |只看该作者
查询里,加索引与没有加索引有很大区别(如果索引列用在了WHERE条件里)

论坛徽章:
0
4 [报告]
发表于 2010-07-18 19:00 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2010-07-19 10:38 |只看该作者
回复 2# cenalulu


id    select_type         table          type         possible_keys         key         key_len         ref               rows          Extra
1         SIMPLE                consume            ref         r                          r          4                const         5           Using where; Using temporary; Using filesort

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:48:00
6 [报告]
发表于 2010-07-19 14:25 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2010-07-20 17:14 |只看该作者
回复 6# feihulove


    为什么没有用到索引呢?此时,索引会用在哪里?

论坛徽章:
0
8 [报告]
发表于 2010-07-20 17:27 |只看该作者
{:3_182:}

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
9 [报告]
发表于 2010-07-21 09:24 |只看该作者
看情况你只在 status 上面建了一个叫r的索引。。。
还是建议做个复合索引吧,就跟我2楼说的那样

论坛徽章:
0
10 [报告]
发表于 2010-07-21 13:53 |只看该作者
回复 9# cenalulu


    我建立的 r 索引就是你2楼建议的3个字段的联合索引,我还建立了一个前两个字段的联合索引,但是这两种情况都和上面我explain出来的结果一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP