今天看了另外一篇文章https://www.percona.com/blog/2015/04/27/indexing-101-optimizing-mysql-queries-on-a-single-table/,对覆盖索引和字段顺序有介绍。 依据上文,我得出以下推断: 假设表数据比较大且不能完全放入内存,而索引可以完全放入内存,则会有下面的情况:(col3, col2, col1)或(col3, col1, col2)都是覆盖索引,有最高的效率,但他俩之间并没有什么区别;(col3)的效率次之,因为只对col3条件有用,但是对col1、col2没用,(col3, col2)或(col3, col1)和(col3)效果一样,不过联合索引用不上,有点浪费,至于其他索引就不要考虑了。 不过以上只是根据老外的文章推断,还没有具体试验。
最左列原则 对于select col1, col2 from tb1 where col3='111'这样的sql一般没必要利用覆盖索引,除非返回的数据行比较多
56,678
社区成员
56,708
社区内容
加载中
试试用AI创作助手写篇文章吧