首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL DBA 工具箱:索引檢查工具 mysqlidxchk 詳細指南

     編輯:MySQL 資料庫相關知識

工具簡介

mysqlidxchk 是一款實用的 MySQL 索引分析工具,專門用於檢測資料庫中未被使用的索引。它能夠讀取一般查詢日誌或慢查詢日誌,分析實際執行的 SQL 語句,找出那些佔用磁碟空間且增加寫入負擔卻從未被查詢優化器使用的索引,幫助 DBA 精簡索引結構,提升寫入效能。

專案網址:https://hackmysql.com

基本用法範例

mysqlidxchk -D databaseA -s /var/log/mysql/mysql-slow.log -g

上述指令針對 databaseA 資料庫,讀取慢查詢日誌進行分析,並產生報告。

核心參數說明

參數簡寫說明
--general LOG-g從一般查詢日誌讀取 SQL 語句,可指定多個檔案,以逗號分隔
--slow LOG-s從慢查詢日誌讀取 SQL 語句,可指定多個檔案
--raw LOG-r從原始日誌讀取 SQL,語句間以分號分隔
--user USER-u連線 MySQL 使用者帳號
--password PASS-p使用者密碼(或留空提示輸入)
--host ADDRESS-hMySQL 伺服器位址
--port PORT-P連線埠號
--socket SOCKET-SUnix socket 檔案路徑
--no-mycnf不讀取 ~/.my.cnf 設定檔
--help顯示說明資訊
--debug輸出除錯資訊
--discovery-report列印資料庫發現報告
--grep P以 Perl 正則模式篩選 SQL 語句
--ignore-update忽略 UPDATE 語句
--no-discovery不嘗試自動發現資料庫結構
--show-all-databases顯示所有資料庫
--show-only-databases D僅顯示指定資料庫(逗號分隔)
--show-used-indexes顯示已被使用的索引

實務建議

  • 定期(如每月)執行一次分析,配合 --slow 參數使用生產環境的慢查詢日誌,結果最具參考價值。
  • 輸出報告中標記為「未使用」的索引,請先在測試環境移除驗證無副作用後,再於生產環境執行 DROP INDEX。
  • 搭配 --show-used-indexes 可同時確認高頻使用的索引,作為調整索引策略的依據。

總結

mysqlidxchk 是輕量級且強大的索引審計工具,善用它能有效減少冗餘索引,降低寫入放大,釋放儲存空間,是 MySQL DBA 維護工具箱中的必備利器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved