Mysql
數據庫性能調整
我有一個 MySQL 後端,MS Access 前端系統,它在本地網路上很好且響應迅速,但在寬頻連接上變得遲緩。到目前為止,我還沒有進行任何性能調整。我應該使用哪些推薦的工具和調整方法?
最近,我發現 MySQL 保留了一個“通用查詢日誌”。也許我可以監視此日誌文件中的更改,以查看實際向伺服器發出的請求。這是微調的好方法嗎?
一個很好的起點是MySQL 慢查詢日誌而不是一般查詢日誌。您可以設置
您需要記錄不使用索引的查詢
更新 在您的問題中,您聲明系統在本地網路上“良好且響應迅速”,但您尚未進行任何性能調整。我指出的慢查詢日誌將幫助您辨識需要很長時間才能執行的查詢(如果以這種方式配置,則超過 1 秒)。IMO,這是一個很好的起點。查詢花費的時間越長,當必須通過 WAN 傳輸響應時,情況就會變得更糟。
我最近發現的一個工具是mk-tcp-model,它可以分析 tcpdump 的輸出以幫助測量請求響應所需的時間。您可以看到有多少請求/響應進來以及每個需要多長時間。對 WAN 的最佳調整是減少您需要發出的請求數量。
你在使用交易嗎?
線路延遲會影響事務的鎖定時間。
這將大大降低您的數據庫性能。
編輯:
也嘗試執行 MySQL
--skip-name-resolve
http://dev.mysql.com/doc/refman/5.0/en/dns.html
編輯2:
我不知道你的原始碼。如果您在 foreach 樣式中使用數據庫操作也很糟糕,尤其是在具有高延遲網路的情況下。在這種情況下,嘗試一下子獲取需要的數據,當然,只獲取需要的數據。