數據庫常見的優化方法及方案

1. 優化方向

  1. SQL以及索引的優化。首先根據需求寫出良好的SQL,然後根據SQL在表中建立有效的索引。但是索引不能過多,否則會影響查詢效率。
  2. 合理的數據庫設計。根據數據庫三範式來進行表的結果設計,設計時應該考慮如何更有效的進行查詢.
  3. 系統配置的優化。例如:mysql數據庫的my.cnf文件.

補充

1.1 字段類型選擇

  1. 少使用INT,多使用TINYINT,SMALLINT,如果非負加上UNSIGNED
  2. VARCHAR的長度只分配真正需要的空間
  3. 避免使用NULL,因爲很難查詢優化且佔用額外索引空間

1.2 數據庫三範式

第一範式:數據表中每個字段都必須是不可拆分的最小單元,也就是確保每一列的原子性
第二範式:滿足一範式後,表中每一列必須有唯一性,都必須依賴於主鍵
第三範式:滿足二範式後,表中的每一列只與主鍵直接相關而不是間接相關(外鍵也是直接相關),字段沒有冗餘。

2. 優化方案

(1) 代碼優化。有一些性能問題完全是由於代碼寫的不合理,有時候直接修改下就能解決。比如:for循環過多,做了無謂的條件判斷,相同邏輯重複多次。
(2) 定位慢SQL,並優化。由自帶的慢查詢日誌或者開源的慢查詢系統定位到具體的出問題的SQL,然後使用explain,prifile等進行逐步調優.
(3) 合理使用索引。由於索引是以空間換時間,會影響增,刪,改的效率.頻繁寫的表不宜建索引。選擇在where,group by,order by,on從句中出現的列作爲索引,對於離散度不大的列沒必要創建索引。
(4) 緩存
(5) 分表
(6) 讀寫分離

發佈了104 篇原創文章 · 獲贊 34 · 訪問量 6825
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章