mysql建立索引小心得
1,如何建立索引
单值索引:CREATE INDEX 索引名 ON 表名(需要建立索引的字段)
复合索引:CREATE INDEX 索引名 ON 表名(需要建立索引的字段,需要建立索引的字段,.........)
2,使用索引的时候需要注意的点
(1)不要在索引列上做任何操作
<1>不要在索引列使用函数
SELECT SQL_NO_CACHE * FROM A WHERE name=‘张三’;(正确)
SELECT SQL_NO_CACHE * FROM emp WHERE LEFT(name,1)=‘张’;(错误)
<2>不要转换索引列类型
SELECT SQL_NO_CACHE * FROM A WHERE name=‘111’;(正确)
SELECT SQL_NO_CACHE * FROM emp WHERE name=111;(错误)
(2)索引列上有范围查询时,范围条件右边的列将失效
CREATE INDEX idx_age_deptId_name on emp(age,deptId,name);
explain SELECT SQL_NO_CACHE * FROM emp WHERE emp.age=30 and deptid=5 AND emp.name = ‘abcd’;(执行索引age,deptId,name)
explain SELECT SQL_NO_CACHE * FROM emp WHERE emp.a