分享一款mysql資料庫檢查冗餘索引利器-pt-duplicate-key-checker

2019-09-21     波波說運維

概述

關係數據庫中的索引越多,對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方面的內容,感興趣的朋友可以關注下~

文章來源: https://twgreatdaily.com/zh/Vt5xT20BJleJMoPMAU7Y.html