MySql資料庫優化維度
阿新 • • 發佈:2021-12-12
MySql資料庫優化維度
首先,正常來說一個業務對應的資料,有很多複雜的資料庫操作。不管是剛開始的業務,還是越發複雜的業務,都需要考慮資料庫的設計、效能,並如何去調優。資料庫設計步驟
選擇合適資料庫
根據業務需求動向,分析業務資料的處理行為,分成兩大類:聯機事務處理OLTP(on-line transaction processing)、聯機分析處理OLAP(On-Line Analytical Processing)資料表結構關係設計
一些比較複雜的大業務,可通過一些方式拆分業務,合理的建立一個業務表之間的關係,以及利用一些技巧提高一些效率。- 表結構要儘量遵循三正規化的原則
- 如果分析查詢表比較多,尤其是需要進行多表聯查的時候(儘量減少多表聯查),可以採用反正規化進行優化。反正規化採用空間換時間的方式,通過增加冗餘欄位提高查詢的效率。
- 表字段的資料型別選擇,關係到了查詢效率的高低以及儲存空間的大小。一般來說,如果欄位可以採用數值型別就不要採用字元型別;字元長度要儘可能設計得短一些。針對字元型別來說,當確定字元長度固定時,就可以採用 CHAR 型別;當長度不固定時,通常採用 VARCHAR 型別。
查詢優化
- 只要簡單的看一下Sql語句是否符合規範
- 根據資料特性檢視是否需要建立索引,Explain分析一下索引使用情況:MySQL中EXPLAIN執行計劃分析
- 分析一下查詢是否有回表問題
- 深度的看一下複雜語句(Group By、Order By等)是否跟索引有關係
- 檢查資料庫的配置,如Join_buffer、Buffer_pool等