如何調校MySQL效能,提升查詢和加入資料的速度?
 到iT邦幫忙

pibarry(iT邦初學者10級)發問:
目前在Windows Server 2003 R2上使用MySQL 5.1,處理器是Xeon 8核心以及8GB的記憶體。

程式需要不斷查詢資料表、Insert資料,資料總量約千萬筆,但處理器利用率只到13~15%左右,有辦法提高處理器的利用率,加速資料處理的作業嗎?

simon581923(iT邦初學者1級):
其實處理器利用率13~15%左右很正常,因為MySQL是很精簡的資料庫系統,原本需要的處理器資源就不多。至於能否增加處理器效能來提升資料存取的速度?這是不可能的,除非整個I/O速度,包括網路、硬碟等的I/O速度都要提升。

現在的問題應該是I/O太慢,以致於資料流量塞住I/O,因而處理器沒有必要全力以赴。

不知道你們處理器除了MySQL外有沒有做為其他用途?或許可以試著調整Cache或Buffer的大小,將資料流量加大,因為系統瓶頸不在處理器,而是在I/O。你也可以用Performance Monitor去看看網路、硬碟、記憶體的I/O情形,應該可以了解問題所在。

如果要調整Cache、Buffer大小,可以用MySQL Administrator的Server Variables頁面調整。

tecksin(iT邦好手1級):
相同的硬體環境下,因為你有8GB的記憶體,所以可以把Windows Server的虛擬記憶體設成0 MB,應該會有想像不到的效果。

bizpro(iT邦好手3級):
一些可用的調整方法如下:

1. 使用Cache機制。

2. 使用MySQL Query Analyzer來分析、調整,在MySQL官網就有這套工具。

3. 至於調整Insert效能,則可以由改進硬碟效能、優化資料表Schema、檢討商業邏輯等方向著手。

4. 建立索引,利用Cache的原理,可以試著用資料表建立常用索引來作Cache。

bruck(iT邦好手7級):
除非系統真的回應很慢,否則不要隨便調整資料庫設定,因為每一種提升效能的設定,都有優點也有缺點。有些情況會提升效能,但有時候反而會減低效能或增加不穩定性。原廠預設值就是針對一般情況的最佳化。

熱門新聞

Advertisement