1、独立的列
一些查询不当的使用索引,或者使得MySOL无法使用已有的索引。如果查询中的列不是独立的,则MySOL就不会使用索引。“独立的列”是指索引列不能是表达式的一部分,也不能是函数的参数。
例如:mysql>select id from student where id+1=5;,就无法使用id列的索引
凭肉眼很容易看出where 中的表达式其实等价以id=4,但是mysql无法自动解析这个方程式。这完全是用户行为,我们应该始终将索引列单独放在比较符号的一侧。
2、前缀索引和索引选择性
如果需要索引很长的字符列,这会使索引变得大且慢,此时采用前缀索引,只索引开始的部分字符,一般情况下也足以满足查询性能,同时也可以大大节约索引空间,从而提高索引效率。索引的选择性是指不重复的索引值和数据表的记录总数的比值,索引的选择性越高查询的效率越高。
未完待续。。。