1.创建索引
字段:可多选
索引类型:
UNIQUE 唯一
FULLTEXT 全文索引
索引方法:
默认BTREE,可选HASH
联合索引:
1.遵守最左前缀法则,即用的最频繁的字段放在最左侧
2.sql前方使用范围查询(>或<)后,后方的联合索引就会失效,使用>=或<=可规避这个问题
3.不要在索引列上进行计算,会使索引列失效
4.使用模糊查询时,'刘%%'不会失去索引,'%刘'则会失去索引
5.使用or关键字时,前条件有索引后条件没索引,整体索引会失效,需要or前后都有索引
6.认为全表扫描快于索引时,会放弃索引搜索
2.使用索引方法
搜索条件方法
推荐使用: use index(索引名) 推荐使用的索引名
不推荐使用: ignore index(索引名) 不推荐使用的索引名
强制使用: force index(索引名) 强制使用的索引名
3.覆盖索引
如在索引内包含,则不需要回表查询,否则会执行回表查询不在索引内的数据
4.前缀索引
只查询5-10位前缀
5.索引设计原则
1.数据量大,查询频繁的表建立索引,如查询不频繁不必
2.针对作为查询条件(where、order by、group by)的字段建立索引
3.根据区分度建立,尽量唯一索引,因为区分度越高效率越高,否则无区别
4.如字符串长度过长,可截取部分建立前缀索引
5.尽量使用联合索引,效率更高,不会执行回表查询
6.尽量控制索引量,并不是越多越好
7.如果当前列不能为NULL,创建表时就限制为NOT NULL