MySQL索引優化

2021-10-11 18:18:12 字數 965 閱讀 7936

from 仙士可

索引就相當於字典前的目錄,如果這個目錄劃分規劃更好,那麼我們找到想要的資料就會更方便,也就提高了查詢的效率。

索引是已排好序的一種資料結構。

索引的更新會隨著資料的變動而變動,所以不是單純建的索引越多越好,索引也會在更新資料時消耗資源。一般是為了提高查詢效率才去建立索引,所以主要針對做查詢條件的字段。常見的:商品名,使用者賬號,手機號,賬單號,訂單號,日期時間。

對較長字段建索引時,可能會導致索引佔的空間太大了,所以可以使用字首索引

select * from test where user_name = 'siam_007' and create_time = 1563280050

假設user_name和create_time都建了索引,sql實際執行時回兩個索引都用嗎?

explain select * from mysql_index_test where user_name = 'siam_007' and create_time = 1563280050

可見實際用的索引是time:

即多個字段組合的乙個索引,字段順序很重要。如乙個表建了乙個索引 test_index,建立時字段和順序是:a,b,c

在查詢時使用where a = 1 and b = 2 and c= 3。那麼這個語句肯定是生效的。

如果我們使用where b = 2 and c =3沒有a條件 而a又是在組合索引中最左側的,那麼索引就不會生效。還是要掃瞄全部行

組合索引要注意字段順序,是指在建立索引時候的排序,而不是sql語句中where的順序,我們使用where b = 2 and a = 1 and c = 3也是 可以生效的

mysql 優化 聚集索引 mysql 索引優化

一.聚集索引 clustered index innodb預設依據主鍵列聚集,myisam不使用 特點 b樹每個葉子包含實際資料行,資料按照索引順序地儲存在物理頁上。優點 1.範圍查詢,獲取指定id的全部資料只需從磁碟讀取少量資料頁 如果不使用聚集索引,每條資料可能引起一次磁碟io。2.由於索引和資...

mysql索引優化原則 MySQL 索引優化原則

索引優化原則 1 最左字首匹配原則,聯合索引,mysql會從做向右匹配直到遇到範圍查詢 3 and d 4 如果建立 a,b,c,d 順序的索引,d是用不到索引的,如果建立 a,b,d,c 的索引則都可以用到,a,b,d的順序可以任意調整。2 和in可以亂序,比如a 1 and b 2 and c ...

mysql索引優化原則 MySQL索引優化

mysql官方對索引的定義 索引是幫助mysql高效獲取資料的資料結構。索引是在儲存引擎中實現的,所以每種儲存引擎中的索引都不一樣。如myisam和innodb儲存引擎只支援btree索引 memory和heap儲存引擎可以支援hash和btree索引。這裡僅針對常用的innodb儲存引擎所支援的b...