mysql-index mysql索引
这里是mysql索引的常用知识记录。
索引用于快速找出在某个列中有一特定值的行。对相关列使用索引是提高SELECT 操作性能的最佳途径。
ToDo
mysql如何使用索引
查询要使用索引最主要的条件是查询条件中需要使用索引关键字,如果是多列索引
,那么只有查询条件使用了多列关键字最左边
的前缀时(前缀索引),才可以使用索引,否则 将不能使用索引。下列情况下, Mysql 不会使用已有的索引:
1、如果 mysql 估计使用索引比全表扫描更慢,则不使用索引。例如:如果 key_part均匀分布在 1 和 100 之间,下列查询中使用索引就不是很好:
SELECT * FROM table_name where key_part > 1 and key_part < 90
2、如果使用
heap表
并且 where 条件中不用=索引列,其他 > 、 < 、 >= 、 <= 均不使 用索引(MyISAM和innodb表使用索引);
3、使用or分割的条件,如果or前的条件中的列有索引,后面的列中没有索引,那么涉及到的索引都不会使用。
4、如果创建复合索引,如果条件中使用的列不是索引列的第一部分;(不是前缀索引)
4、如果 like 是以%开始;
5、对 where 后边条件为字符串的一定要加引号,字符串如果为数字 mysql 会自动转 为字符串,但是不使用索引。