概述
關係數據庫中的索引越多,對DML操作性能影響越大,所以找出重複的索引並刪除索引,對於優化資料庫性能,也是一項非常重要的工作。
下面介紹pt中兩個檢查索引的工具,主要是pt-duplicate-key-checker方面的介紹。
一、檢查冗餘索引
使用pt-duplicate-key-checker工具檢查是否有重複的索引。根據結果,可以看出重複的索引信息,包括索引定義,列的數據類型,以及修復建議。
1、查看某張表的索引結構
show indexes from hr_employee_assign;
可以發現裡面有一個重複的索引,HR_EMPLOYEE_ASSIGN_U1和HR_EMPLOYEE_ASSIGN_U2索引就重複了。
2、pt-duplicate-key-checker檢測
pt-duplicate-key-checker --host=localhost --user=root --password=7mq47stdmA39JkJ] --databases=fsl_prod --tables=hr_employee_assign
如果要檢查整個資料庫的話只需要去掉--tables參數就可以了。
二、檢查索引使用情況(比較少用)
pt-index-usage工具用於檢查索引的使用情況,由於需要對慢日誌讀取分析,操作有點風險,用得比較少。默認情況下pt-index-usage只建議刪除未使用的輔助索引,而不是主索引或惟一索引。
pt-index-usage /data/log/slow.log --host=localhost --user=root --password=xxxx
上面的命令最重要的是pt-duplicate-key-checker了,建議大家重點掌握。覺得有用的朋友多幫忙轉發哦!後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~