在使用索引的同时,还应该了解MySQL 中索引存在的限制,以便在索引应用中尽可能地避开限制所带来的问题。下面列出了目前 MySQL 中与索引使用相关的限制。 1) MyISAM存储引擎索引键长度的总和不能超过1000字节; 2) BLOB和TEXT类型的列只能创建前缀索引; 3) MySQL 目前不支持函数索引; 4) 使用不等于(!= 或者 <>)的时候,MySQL 无法使用索引; 5) 过滤字段使用了函数运算(如abs(column))后,MySQL无法使用索引; 6) Join 语句中 Join 条件字段类型不一致的时候,MySQL 无法使用索引; 7) 使用LIKE操作的时候如果条件以通配符开始(如’%key…’)时,MySQL无法使用索引; 使用非等值查询的时候,MySQL 无法使用 Hash 索引。 在使用索引的时候,须要注意上面的这些限制,尤其是要注意无法使用索引的情况,因为这很容易造成极大的性能隐患。 |