1. 程式人生 > >mysql 讀寫高併發大資料表優化

mysql 讀寫高併發大資料表優化

1.更新頻繁儘量使用innode引擎,支援行級鎖,降低鎖粒度,提高併發量。
2.考慮使用mysql 主從做讀寫分離,可以利用主庫更新,從庫進行查詢。分擔資料庫壓力,提高併發。
3.考慮使用reids nosql類記憶體資料庫進行讀寫分離。查詢通過先redis查詢,無結果再查詢mysql,同時將mysql資料庫查詢存入redis。
4.利用mysql表分割槽(1-1024),減小表粒度,塊式管理資料。可以提高塊式查詢資料。
5.利用mysql獨立表空間,自動回收刪除後的表空間(獨立表空間不會自動回收、會持續增長),同時有效減小資料庫儲存檔案,提高儲存效能。

6.合理設計資料表索引,儘量利用主鍵更新,表更新頻繁的話也會導致索引更新頻繁,索引過多增加了開銷,新增適當主鍵。

7.選擇合適的索引,B+數索引是記錄索引欄位,可以通過查詢索引可能達到資料庫查詢的效果(查詢欄位剛好是索引欄位),如果欄位較小而且不多的話可以考慮,可以部分匹配(組合索引)。而hash索引是對整條記錄進行hash,查詢必須匹配所有索引欄位,但是索引儲存資料較小。

8.合理的設計資料庫的查詢cache,減小資料庫查詢解析,提高查詢效率和效能。

9.對大表可以進行分表和分庫處理。一般採用對錶主鍵hash值處理分成幾個hash段,對每個hash段的資料儲存在一個表中。每次存取都通過hash值覺得儲存對應的表。