免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zhengdl126
打印 上一主题 下一主题

简单的索引问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-08-12 09:40 |只看该作者
Index_U_Id:  `type`, `ischecked`, `u_id`,
and连接的条件的顺序并不影响索引使用的判断。
索引列的顺序会影响索引使用的判断


可以理解你所说的:


explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (ischecked =1 AND type=01 ) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (type=01 AND ischecked =1) ORDER BY `id` ASC ;

explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (u_id=14 AND type=01 ) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (type=01 AND u_id=14) ORDER BY `id` ASC ;

explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE type=01 ORDER BY `id` ASC ;


explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (u_id=14 AND ischecked =1 AND type=01) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (u_id=14 AND type=01 AND ischecked =1 ) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (type=01 AND ischecked =1 AND u_id=14) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (type=01 AND u_id=14 AND ischecked =1) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (ischecked =1 AND u_id=14 AND type=01 ) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (ischecked =1 AND type=01 AND u_id=14) ORDER BY `id` ASC ;


------------以下语句没有用到索引。

explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (u_id=14 AND ischecked =1 ) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (ischecked =1 AND u_id=14 ) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE u_id=14 ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE ischecked =1 ORDER BY `id` ASC ;


我又针对这些没有用到索引的语句增加了两个索引,以确保所用可能的SQL语句都能用到索引:

Index_U_Id2:  `u_id`, `ischecked` :

explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (u_id=14 AND ischecked =1 ) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE (ischecked =1 AND u_id=14 ) ORDER BY `id` ASC ;
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE u_id=14 ORDER BY `id` ASC ;

Index_Check:  `ischecked` :
explain SELECT `ios_seeds`.* FROM `ios_seeds` WHERE ischecked =1 ORDER BY `id` ASC ;


这样做合理吗?是不是索引太多了

[ 本帖最后由 zhengdl126 于 2009-8-12 09:42 编辑 ]

论坛徽章:
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
12 [报告]
发表于 2009-08-12 12:28 |只看该作者
是否合理就要看你表中的数据是怎样的了。
你新列出的那些语句是否在应用中经常用到?
此外ischecked =1 此类的条件能排除掉多少记录也是比较关键的。

例如你ischecked =1 的记录有10000条
而ischecked =0 的记录只有100条
索引并不能排除大部分的数据,那么还不如不加这样的索引。因为索引的读取和载入都是需要耗费资源的。

论坛徽章:
0
13 [报告]
发表于 2009-08-12 13:37 |只看该作者
原来索引不是多而全就好,而是要针对实际数据中的排查,还要结合实际用户中使用的SQL语句来分析,这次有点头绪了,谢谢 cenalulu  这两天的指点。

还有个比较宽泛的问题,只需要给我点思路就好:
MYSQL大数据量优化,除了一般的索引优化,还应该从哪方面着手?

论坛徽章:
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
14 [报告]
发表于 2009-08-12 14:14 |只看该作者
从query开始优化,分析解决慢查询。
机子再好写了条非常差的query也会导致效率低下。

query好了,接下来就是调数据库参数了。

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
15 [报告]
发表于 2009-08-12 14:19 |只看该作者
原帖由 zhengdl126 于 2009-8-12 13:37 发表
原来索引不是多而全就好,而是要针对实际数据中的排查,还要结合实际用户中使用的SQL语句来分析,这次有点头绪了,谢谢 cenalulu  这两天的指点。

还有个比较宽泛的问题,只需要给我点思路就好: ...




学习的不错

一般的调整顺序是sql->参数->内存->存储....

论坛徽章:
0
16 [报告]
发表于 2009-08-12 16:22 |只看该作者
在网上看到比较多的优化方法就是explain分析sql,然后就是开启慢查询日志。

“内存->存储” 估计比较深了,“调数据库参数”是一个什么概念?

类似cenalulu 这里介绍的么:
http://blog.chinaunix.net/u3/90603/showart_1955397.html

[ 本帖最后由 zhengdl126 于 2009-8-12 16:32 编辑 ]

论坛徽章:
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
17 [报告]
发表于 2009-08-12 16:32 |只看该作者
优化各个engine的参数,主要是缓存大小这种。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP