mysql索引的一个技巧
浏览:3079次 出处信息
其实按照常规的方法可以这样设计:key(col1, col2)
但是这种办法在mysql里不算是理想的,where条件里限定索引前部分是一个范围的情况下后面的order by还是会有filesort。如果where条件里限定索引前部分是一个常量,那么order by就会有效利用索引。例如:select * from table where col1 = number order by col2 desc,explain的结果就不错。
为了让它能够利用上索引并且消除filesort,可以这样设计
索引:key(col2,col1);
select * from table where col2 > min_value and col1 > number order by col2 desc;
这里where条件里同时执行了索引的两个列,并且为了保证逻辑一致,对col2列的限定条件等效于无限定。
这样mysql就能很好的利用索引了。这个技巧在mysql high performance2里也有提过
建议继续学习:
- 由浅入深探究mysql索引结构原理、性能分析与优化 (阅读:15932)
- 浅谈MySQL索引背后的数据结构及算法 (阅读:11001)
- 由浅入深理解索引的实现(2) (阅读:7308)
- HBase二级索引与Join (阅读:6595)
- 如何建立合适的索引? (阅读:6355)
- InnODB和MyISAM索引统计集合 (阅读:5945)
- mysql查询中利用索引的机制 (阅读:6274)
- Innodb 表和索引结构 (阅读:5805)
- MySQL索引背后的数据结构及算法原理 (阅读:5395)
- mysql索引浅析 (阅读:4970)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
后一篇:关于mysql中的DISTINCT >>
文章信息
- 作者:星月浪子 来源: 那一剑的风情
- 标签: 索引
- 发布时间:2009-10-29 08:45:27
建议继续学习
近3天十大热文
-
[1399] WordPress插件开发 -- 在插件使用 -
[113] 解决 nginx 反向代理网页首尾出现神秘字 -
[27] find命令的一点注意事项 -
[27] 分布式系统hash策略 -
[26] 如何建立合适的索引? -
[26] Oracle MTS模式下 进程地址与会话信 -
[25] 你应该知道的16个Linux服务器监控命令 -
[25] 浅谈MySQL索引背后的数据结构及算法 -
[25] 读书笔记-壹百度:百度十年千倍的29条法则 -
[24] Linux如何统计进程的CPU利用率
