#3: 調(diào)整內(nèi)部變量
MySQL是如此的開放,所以可輕松地進(jìn)一步調(diào)整其缺省設(shè)置以獲得更優(yōu)的性能及穩(wěn)定性。需要優(yōu)化的一些關(guān)鍵變量如下:
改變索引緩沖區(qū)長度(key_buffer) 一般,該變量控制緩沖區(qū)的長度在處理索引表(讀/寫操作)時使用。MySQL使用手冊指出該變量可以不斷增加以確保索引表的最佳性能,并推薦使用與系統(tǒng)內(nèi)存25%的大小作為該變量的值。這是MySQL十分重要的配置變量之一,如果你對優(yōu)化和提高系統(tǒng)性能有興趣,可以從改變key_buffer_size變量的值開始。
改變表長(read_buffer_size) 當(dāng)一個查詢不斷地掃描某一個表,MySQL會為它分配一段內(nèi)存緩沖區(qū)。read_buffer_size變量控制這一緩沖區(qū)的大小。如果你認(rèn)為連續(xù)掃描進(jìn)行得太慢,可以通過增加該變量值以及內(nèi)存緩沖區(qū)大小提高其性能。
設(shè)定打開表的數(shù)目的最大值(table_cache) 該變量控制MySQL在任何時候打開表的最大數(shù)目,由此能控制服務(wù)器響應(yīng)輸入請求的能力。它跟max_connections變量密切相關(guān),增加table_cache值可使MySQL打開更多的表,就如增加max_connections值可增加連接數(shù)一樣。當(dāng)收到大量不同數(shù)據(jù)庫及表的請求時,可以考慮改變這一值的大小。
對緩長查詢設(shè)定一個時間限制(long_query_time) MySQL帶有“慢查詢?nèi)罩尽保鼤詣拥赜涗浰械脑谝粋特定的時間范圍內(nèi)尚未結(jié)束的查詢。這個日志對于跟蹤那些低效率或者行為不端的查詢以及尋找優(yōu)化對象都非常有用。long_query_time變量控制這一最大時間限定,以秒為單位。