mysql 索引的限制

2021-07-10 01:07:54 字數 780 閱讀 4881

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中索引的限制 1 myisam儲存引擎引鍵的長度綜合不能超過1000位元組 2 blob和text型別的列只能建立字首索引 3 mysql目前不支援函式索引 4 使用!或者 的時候mysql不能使用索引 5 過濾字段使用了函式運算的時候如 abs key sum key 的時候mysql無...

MySQL 中索引的限制

mysql 中索引的限制 1.myisam 儲存引擎索引鍵長度總和不能超過1000 位元組 2.blob 和text 型別的列只能建立字首索引 3.mysql 目前不支援函式索引 4.使用不等於 或者 的時候mysql 無法使用索引 5.過濾字段使用了函式運算後 如abs column mysql ...

Mysql 索引長度限制

在設定 utf8mb4 欄位的字元長度時,可能會丟擲乙個異常 specified key was too long max key length is 1000 bytes 也就是在給表的索引字段新增字元長度時,超過了最大索引長度 1000 位元組。關於索引長度的限制,最主要的因素就是儲存引擎和字符...