優化思路
詳細的MySQL優化步驟如下:
- 檢查數據表結構,改善不完善設計
- 跑一遍主要業務,收集常用的數據庫查詢SQL
- 分析查詢SQL,適當拆分,添加索引等優化查詢
- 優化SQL的同時,優化代碼邏輯
- 添加本地緩存和redis緩存
盡可能不要使用NULL值
因為建表的時候,如果不對創建的值設置默認值,MySQL都會設置默認為NULL
。那么為啥用NULL
不好呢?
NULL
使得索引維護更加復雜,強烈建議對索引列設置NOT NULL
NOT IN
、!=
等負向條件查詢在有NULL
值的情況下返回永遠為空結果,查詢容易出錯NULL
列需要一個額外字節作為判斷是否為NULL
的標志位- 使用
NULL
時和該列其他的值可能不是同種類型,導致問題。(在不同的語言中表現不一樣) - MySQL難以優化對可為
NULL
的列的查詢
所以對于那些以前偷懶的字段,手動設置一個默認值吧,空字符串呀,0呀補上。
雖然這種方法對于MySQL的性能來說沒有提升多少,但是這是一個好習慣,而且以小見大,不要忽略這些細節。
添加索引
對于經常查詢的字段,請加上索引,有索引和沒有索引的查詢速度相差十倍甚至