mysql建立高效能的索引

2021-08-11 07:25:28 字數 1241 閱讀 8413

mysql索引的基礎和型別

延伸:mysql索引建立的原則

延伸:mysql索引的注意事項

mysql索引的基礎和型別

1)索引對效能的影響

大大的減少了伺服器掃瞄的資料量

幫助伺服器避免排序和臨時表

將隨機i/o變成順序i/o

大大提高了查詢的速度,降低了寫的速度,占用磁碟。

2)索引的型別

索引有很多種型別,都是在儲存引擎層實現的。

1.普通索引:最普通的索引,沒有任何的約束限制。

2.唯一索引:與普通索引類似,但是具有唯一性約束

3.主鍵索引:特殊的唯一索引,不允許有空值。

4.組合索引:將多個列組合在一起建立索引,可以覆蓋多個列。

5.外來鍵索引:只有innodb型別的表才可以使用外來鍵索引,保證資料的一致性,完整性和實現級聯操作。

6.全文索引:mysql自帶的全文索引只能用於myisam,並且只能對英文進行全文檢索。

考點:唯一索引和主鍵索引的區別

乙個表只能有乙個主鍵索引,但是可以有多個唯一索引,

主鍵索引一定是唯一索引,唯一索引不是主鍵索引

主鍵可以和外來鍵構成參照完整性約束,防止資料不一致。

mysql索引建立的原則

1.最適合出現索引的列是出現在where子句中的

列,或連線子句中的列而不是出現在select關鍵字後面的列

2.索引列的基數越大,索引的效果越好。

3.對字串進行索引,應該制定乙個字首長度,可以節省大量的索引空間。

4.根據情況建立復合索引,復合索引可以提高查詢效率。

5.避免建立過多的索引,索引會額外的占用磁碟空間,降低寫操作的效率。

6.主鍵盡可能的選擇較短的資料型別,可以有效的減少索引的磁碟占用

,提高查詢速率。

mysql索引的注意事項

1.復合索引(聯合索引)遵循左字首原則。

2.like查詢,%不能在前(where like name =『 %wang%』  時索引會失效)

3.column is null可以使用索引

4.如果mysql估計使用索引比全表掃瞄慢時,會自動放棄使用索引(優化器的作用)

5.如果or前的條件中的列有索引,後面的沒有,索引都不會被用到。

6.列型別是字串,查詢時一定要給值加引號,否則索引失敗。

Mysql建立高效能索引

mysql索引的基礎和型別 索引的基礎 1.索引類似於書籍的目錄,要想找到一本書的某個特定主題,需要先查詢書的目錄,定位對應的頁碼 儲存引擎使用類似的方式進行資料查詢,先去索引當中找到對應的值,然後根據匹配的索引找到對應的資料行 索引對效能的影響 大大減少伺服器需要掃瞄的資料量,比如我們資料表中有一...

高效能mysql(一) 建立高效能索引

單列索引和多列索引 單列索引 多個單列索引的選擇問題 多個or條件 多個單列的效能往往效能很低,盡量建立高效的多列索引。多列索引 選擇合適的索引順序 避免範圍條件 在where子句中,in是有效的,範圍條件會導致後面的索引無效!在order by中,範圍條件和in都會導致無法按照索引排序!按照索引順...

MySQL建立高效能的索引

b tree 索引 儲存引擎帶來的不同。1.底層儲存儲存引擎不同使用的資料結構不同,ndb使用t tree,即使他的名稱是btree,innodb使用的是b tree。2.不同引擎也會以不同的方式使用b tree,myisam使用字首壓縮技術使得索引更加小,innodb原資料格式進行儲存。myisa...