星期五, 6月 22, 2012

用 pt-duplicate-key-checker 檢查是否有沒有用到的 key

pt-duplicate-key-checker 是 Percona Toolkit 裡面一個還蠻簡單實用的功能,第一次用請只指定 DSN 就好,看看輸出內容:
pt-duplicate-key-checker --charset utf8 h=db-test-float-1,u=username,p=password
你應該會看到一堆 ALTER TABLE 以及 DROP INDEX 的指令。如果沒有的話代表你的資料庫沒有顯而易見的 INDEX 問題。

如果沒有問題,就把這串指令 pipe 給 mysql 執行:
pt-duplicate-key-checker ... | mysql -h db-test-float-1 -u username -p
然後輸入密碼。

值得一提的是,我測試過的環境中,InnoDB 的 DROP INDEX 行為都是瞬間做完,但我不確定是否有特別的設定。我測試的環境有些特點:

  • 都是在 Percona XtraDB Cluster 上測試 (目前是 5.5.24-55)。
  • innodb_file_format = Barracuda
  • innodb_file_per_table
  • innodb_support_xa = FALSE
  • 所有的 InnoDB table 都是 COMPRESSED 格式。
如果不能停機,最好是先建立測試環境 (像是 AWS EC2) 測試過後再做。

沒有留言: