索引对性能的影响:
大大减少服务器需要扫描的数据量,大大提高查询速度,缺点降低写的速度,占用磁盘空间;非常小的表,大部分情况下全表扫描效率更高
索引类型:
普通索引、唯一索引、主键索引、组合(复合)索引、外键索引、全文索引
MySQL索引的创建原则
- 对查询频率高的字段创建索引
- 对排序、分组、联合查询频率高的字段创建索引
- 索引的数目不宜太多
- 若在实际中,需要将多个列设置索引时,可以采用多列索引
- 选择唯一性索引
- 尽量使用数据量少的索引
- 尽量使用前缀来索引
- 删除不再使用或者很少使用的索引
参考链接:https://www.cnblogs.com/helloworldlx/p/8651583.html
MySQL复合索引的注意事项:
- 前缀原则,也就是最左原则,列跳过即索引失效
- like查询,%不能在放在前,索引会失效
- 列为null可以使用索引
- or条件的列有索引,后面列没有,索引会失效
- 列类型是字符串,查询时没有加引号,索引会失效
- 当不用索引比用索引查询效率更高时,MySQL会放弃索引,MySQL优化器自动选择