mysql優化技巧

2021-10-11 21:48:56 字數 1146 閱讀 1808

這邊總結一下mysql在使用過程中比較常見的優化小技巧,比較不好理解的都加了小例子

1、當使用索引列進行查詢的時候盡量不要使用表示式,可以把計算放在業務層,而不是資料庫層

錯誤例:

select actor_id from actor where actor_id+1=5;

2、盡量使用主鍵查詢,而不是其他索引,因為主鍵查詢不會觸發回表查詢

3、使用字首索引

字段長度比較長的時候,擷取部分識別度高的部分當索引

想要詳細了解的可以看我文章mysql字首索引--帶案例分析

4、使用索引掃瞄來排序

5、union all、in、or都能夠使用索引,推薦使用in

6、範圍列可以用到索引

範圍條件是:<、<=、>、>=、between

範圍列可以用到索引,但範圍列後面的列無法用到索引,索引最多用於乙個範圍列

7、強制型別轉換會導致全表掃瞄

例如user表中的phone是varchar型別的

explain select * from user where phone=13800001234;不會觸發索引

explain select * from user where phone=『13800001234『;加入引號之後觸發索引

8、更新十分頻繁、資料區分度不高的字段不宜建立索引

更新會變更b+樹,更新頻繁的字段建立索引會大大降低資料庫的效能(葉子節點插資料,合併**會導致n多的io)

區分不大的屬性,例如性別,建立索引沒有什麼意義,不能夠有效的過濾資料,一般區分度要在80%以上的列才適合建立索引

區分度計算:count(distinct(列名))/count(*)

9、建立索引的列,不允許為null,可能會得到不符合預期的結果。業務中不能為null的字段

10、當需要進行表連線的時候,最好不要超過三張表,因為需要join的字段,資料型別必須一致(最好是索引列)

11、能使用limit盡量使用limit,避免過多無效掃瞄

12、單錶索引建議控制在五個以內,索引會占用記憶體空間

13、單索引欄位不允許超過五個(組合索引,最左匹配原則)

14、建立索引的時候避免以下錯誤概念

索引越多越好,索引多了佔記憶體

過早優化,要在熟悉業務之後再優化

mysql優化小技巧

對mysql優化時乙個綜合性的技術,主要包括 a 表的設計合理化 符合3nf b 新增適當索引 index 四種 普通索引 主鍵索引 唯一索引unique 全文索引 c 分表技術 水平分割 垂直分割 d 讀寫 寫 update delete add 分離 e 儲存過程 模組化程式設計,可以提高速度 ...

Mysql優化小技巧

思夢php 2019 02 09 07 01 00 資料量和要求 優化技巧 先把每一條心得記錄在這裡,後面會進行實驗對其一一驗證。查詢資料總條數時,使用max id 而不是count 進行總量計數。當然,前提是id是從1開始自增長,並且沒有行被刪除過。對於常用的查詢字段建立索引。索引的速度優勢顯而易...

Mysql常見優化技巧

mysql基礎打牢以後,優化就是一大難題。如何優化資料庫呢?這也是面試常見的問題,除了新增索引以外,我們還需要從這些方面考慮 1 sql語句和索引 程式猿常常考慮的難題 2 資料庫表結構 資料結構設計 3 系統配置 4 硬體 硬體和系統配置不做介紹,先簡單介紹一下mysql常見效能優化技巧 mysq...