一、加索引方法
加索引可以用命令,也可以在sqlyog中进行操作,比较方便。
索引分成四种:
- fulltext:全文索引,基本不用,搜索一般用es
- primary:主键索引
- unique:唯一索引
- 空白:普通索引
索引还可以分成:
- 单列索引
- 联合索引
要注意的就是他们是可以组合来的,比如把几个字段设置做一个联合索引,这个联合索引还可以选择fulltext里面四种的一种,可以在sqlyog中试试。
二、如何查看索引是否有效
看索引是否有效还是在执行计划里面看,主要有以下三点
-
type
性能上是system>const>eq_ref>ref>range>index>all,实际开发能达到ref和range之间就比较好了。 -
keylen
keylen是索引覆盖的长度,可以看我上一篇mysql执行计划介绍 -
extra
using index表示索引覆盖
三、加索引技巧
1、根据mysql语句解析顺序加索引
from … on… join …where …group by …having …select dinstinct …order by limit …
2、最佳左前缀原则
3、小表驱动大表,小表的意思是表的数据量少,left join 时小表放在左边
4、索引放在最常用的字段上面
5、in 语句放在最后
6、联合索引不能使用不等于(!= <>)或is null (is not null),否则自身以及右侧所有全部失效。
7、like尽量以“常量”开头,不要以"%"开头,否则索引失效
8、尽量不要使用or,否则索引失效