MySQL查詢最佳化–調整內部變數的詳解

來源:互聯網
上載者:User

MySQL是如此的開放,所以可輕鬆地進一步調整其預設設定以獲得更優的效能及穩定性。需要最佳化的一些關鍵變數如下:

  改變索引緩衝長度(key_buffer)

  一般,該變數控制緩衝區的長度在處理索引表(讀/寫操作)時使用。MySQL使用手冊指出該變數可以不斷增加以確保索引表的最佳效能,並推薦使用與系統記憶體25%的大小作為該變數的值。這是MySQL十分重要的組態變數之一,如果你對最佳化和提高系統效能有興趣,可以從改變 key_buffer_size變數的值開始。

  改變表長(read_buffer_size)

  當一個查詢不斷地掃描某一個表,MySQL會為它分配一段記憶體緩衝區。read_buffer_size變數控制這一緩衝區的大小。如果你認為連續掃描進行得太慢,可以通過增加該變數值以及記憶體緩衝區大小提高其效能。

  設定開啟表的數目的最大值(table_cache)

  該變數控制MySQL在任何時候開啟表的最大數目,由此能控制伺服器響應輸入請求的能力。它跟max_connections變數密切相關,增加 table_cache值可使MySQL開啟更多的表,就如增加max_connections值可增加串連數一樣。當收到大量不同資料庫及表的請求時,可以考慮改變這一值的大小。

  對緩長查詢設定一個時間限制(long_query_time)

  MySQL帶有“慢查詢日誌”,它會自動地記錄所有的在一個特定的時間範圍內尚未結束的查詢。這個日誌對於跟蹤那些低效率或者行為不端的查詢以及尋找最佳化對象都非常有用。long_query_time變數控制這一最大時間限定,以秒為單位。

  以上討論並給出用於分析和最佳化SQL查詢的三種工具的使用方法,以此提高你的應用程式效能。使用它們快樂地最佳化吧!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.