如何选择合适的列建立索引
1.在where从句,group从句,order by从句,on从句中出现的列。 2.索引字段越小越好 3.离散度大的字段放在联合索引的前面
通过查询字段唯一值来判断字段的离散度
select count(distinct 字段名),count(distinct 字段名) from 表名;
删除重复及冗余索引
1.重复索引是指相同的字段以相同的顺序建立的同类型的索引 2.冗余索引是指多个索引的前缀列相同,或是在联合索引中包含了主键的索引
推荐使用pt-duplicate-key-checker工具检查重复及冗余索引
pt-duplicate-key-checker \
-uroot \
-p '密码'\
-h 127.0.0.1
删除不用索引
在perconMysql和mariaDB中可以通过INDEX_STATISTIC表来查看哪些索引未使用,但在Mysql中目前只能通过慢查询日志配合pt-index-usage工具来进行索引使情况的分析。
pt-index-usage \
-uroot -p '密码' \
mysql-slow.log