MySQL之索引優化的一些細節

2021-10-05 22:54:03 字數 505 閱讀 6528

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

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

3.union all,in,or都能夠使用索引時,但是推薦使用in

4.範圍列可以用到索引,範圍條件是:<、<=、>、>=、between,範圍列可以用到索引,但是範圍列後面的列無法用到索引,索引最多用於乙個範圍列

5.強制型別轉換會全表掃瞄

6.更新十分頻繁,資料區分度不高的字段上不宜建立索引。更新會變更b+樹,更新頻繁的字段建議索引會大大降低資料庫效能。類似於性別這類區分不大的屬性,建立索引是沒有意義的,不能有效的過濾資料。一般區分度在80%以上的時候就可以建立索引,區分度可以使用 count(distinct(列名))/count(*) 來計算。

7.能使用limit的時候盡量使用limit

8.單錶索引建議控制在5個以內

9.建立索引的時候應該避免以下錯誤概念:索引越多越好,過早優化,在不了解系統的情況下進行優化。

mysql的一些優化

前言 sql優化,是一種概率層面的優化。至於是否實際使用了我們的優化,需要通過explain進行推測。注意 服務層中有sql優化器,可能會影響我們的優化,同時註明 sql的優化前提是有索引 有索引 有索引 in和exists的使用場景 select from a where exists selec...

mysql索引技巧 MySql 索引的一些技巧

一 多表子從查詢 多表查詢時,子查詢可能會出現觸發不了索引的情況 select from test 1 where id in select id from test publish where id in 38,69 上面語句,test 1和test public都where了主鍵id,常理來說這...

mysql索引的一些概念

在mysql中,建立索引的時候一般可選的索引型別有 普通索引 normal 最基本的索引,沒有任何限制 唯一索引 unique 索引列的值必須唯一,但允許有空值,全文索引 fulltext 效果類似like,但是比like效率高,多用於大文字欄位的檢索。還有乙個主鍵索引,預設建表指定了主鍵就自動建立...