索引优化

索引优化
索引列上不能使用表达式或者函数
在这里插入图片描述
Innodb索引键 的大小不能超过767个字节 mysiam 1000

前缀索引和索引列的选择性

索引的选择性是不重复的索引值和表记录数的比值

联合索引:
如何选择索引列的顺序
·经常会用到的列优先
·选择性高的列优先
·宽度小的列优先
覆盖索引:
优点:
可以优化缓存,减少磁盘的IO操作
可以减少随机IO,便随机IO操作变为顺序IO
可以避免对Innodb主键索引的二次查询
可以避免MyISAM表进行系统调用
无法使用:
存储引擎不支持覆盖索引,hash就不行
查询中使用了太多的列
使用了双%号的like查询

如何使用索引来优化查询:
使用索引扫描来优化排序
通过排序进行操作
按照索引顺序扫描数据
·索引的列顺序和order by子句的顺序安全一致
·索引中所有列的方向和order by子句完全一致
·order by中的字段全部在关联表中的第一张表中

模拟hash索引进行查询优化:
用B-tree模拟hash 不是所有的存储引擎都支持hash索引、
只能处理键值的全值匹配查找
所使用的hash函数决定着索引键的大小
利用索引优化锁
·索引可以减少锁定的行数
·索引可以加快处理速度,同时加快了锁的释放
索引的维护和优化
删除重复的索引和冗余的索引
·primary key(id),unique key(id),index(id)
·index(a),index(a,b)
在这里插入图片描述
可以检查冗余的索引
查找为被使用的索引
更新索引统计信息及减少索引锁片

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章