MySQL索引,MySQL中索引的限制?

2021-09-08 18:49:12 字數 780 閱讀 4715

mysql中索引的限制:

1、myisam儲存引擎引鍵的長度綜合不能超過1000位元組;

2、blob和text型別的列只能建立字首索引;

3、mysql目前不支援函式索引;

4、使用!= 或者<>的時候mysql不能使用索引;

5、過濾字段使用了函式運算的時候如  abs(key), sum(key)的時候mysql無法使用索引;

6、使用like操作的時候以%開始無法使用索引,所以盡量寫出key like 'abc%' 而不要寫出 '%abc%' ,後一種方法是不會使用到索引的;

7、使用非等值查詢的時候,mysql無法使用hash索引;

順便說下mysql索引的幾種型別:

1、b-tree索引,這種也是最主要的索引型別;

2、hash索引,hash索引是一步到位,所以他的效率比b-tree還要好,但是它也有缺點例如由於存放的是hash值所以只支援<=> 和in操作。由於存放的時候經過hash計算,所以不能排序。而且當存在許多相同的hash值的時候,它的效率會變低;

3、fulltext索引,這種索引可以用來做全文搜尋目前只有char,varchar,text 三種型別支援。fulltext主要是用來替代效率低下的 like '%******%'操作的。另外fulltext對於中文的支援不太好,需要第三方的補丁或者外掛程式來完成。還有就是比較的消耗資源,所以慎用。

4、r-tree索引,主要是用來解決空間資料檢索的。只有myisam引擎支援空間索引,相對於b-tree,它的優勢在於範圍查詢。

mysql 索引 手冊 MySQL 索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...

mysql非同步索引 MySQL索引

一 為什麼要使用索引 優化查詢,減少掃瞄的錶行數。打個比方,索引的作用就和查新華字典,字典的索引的作用的一樣的。二 索引的型別 1 索引是在儲存引擎中實現的,而不是在伺服器層中實現的。所以,每種儲存引擎的索引都不一定完全相同,並不是所有的儲存引擎都支援所有的索引型別。2 如果使用的是組合索引 即有多...

mysql 索引 鍵名 mysql 索引

3 索引型別 在建立索引時,可以規定索引能否包含重複值。如果不包含,則索引應該建立為primary key或unique索引。對於單列惟一性索引,這保證單列不包含重複的值。對於多列惟一性索引,保證多個值的組合不重複。primary key索引和unique索引非常類似。事實上,primary key...