MySQL性能優化知識點總結

一、簡介

通過合理安排資源,調整系統參數使MySQL運行更快、更節省資源。

二、優化查詢

1.使用索引查詢

MySQL中提高性能的一個最有效方式就是對數據表設計合理的索引。但並不是使用帶索引的字段查詢時,索引都會起作用。

 (1) 使用like的查詢語句中,如果匹配字符串的第一個字符爲“%”,索引不會起作用

 (2) 對於多列索引,只有查詢條件中使用了第一個字段時,索引纔會被使用

 (3) 關鍵字or前後兩個條件都是索引時,索引纔有效

2.優化子查詢

分析:MySQL需要爲內層查詢語句的查詢結果建立一個臨時表,然後外層查詢語句從臨時表中查詢記錄。因此子查詢的速度會受到一定影響。如果數據量較大,這種影響就會隨之增大。

解決方法:用join來代替子查詢,連接查詢不需要建立臨時表,如果使用了索引,性能會更好。

三、優化數據庫結構

1.對於字段較多的表,如果有些字段的使用頻率很低,可以將這些字段分離出來形成新表。

2.通過建立中間表,把經常需要聯合查詢的數據插入到中間表中,然後將原來的聯合查詢改爲對中間表的查詢。

3.設計數據庫表時應儘量遵守範式理論的規約,儘可能減少冗餘字段。但是合理的加入冗餘字段可以提高查詢速度

四、優化MySQL服務器

1.優化服務器硬件。配置較大的內存和高速磁盤。

2.優化MySQL參數。修改my.cnf或my.ini文件的配置參數。

  key_buffer_size:表示索引緩衝區的大小。索引緩衝區所有線程共享。增加緩衝區可以得到更好處理的索引。但是如果這個值過    大,會導致操作系統頻繁換頁,反倒降低性能。

  sort_buffer_size:表示排序緩存區的大小。這個值越大,進行排序的速度越快。

  max_connections:表示數據庫的最大連接數。連接會浪費內存資源,過多連接可能會造成MySQL服務器僵死。

  thread_cache_size:表示可以複用的線程的數量。如果有很多新的線程,爲了提高性能可以增大該參數值。

  除上述外,還有許多配置參數,合理配置這些參數可以提高服務器的性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章