http://blog.codinglabs.org/articles/theory-of-mysql-index.html
这篇文章介绍了索引的匹配方式:全列匹配,最左前缀匹配等。要注意的是:
- 通配符%***%不能匹配索引,只有***% 可以。
- 索引更多用于精确匹配(=,IN),范围匹配可以用(between * and *),不能用(>,<,!=)但是当一个语句中有两个范围匹配时也不会用索引。
还介绍了几个创建索引的技巧:
- 索引选择性。Index Selectivity = Cardinality / #T (不重复的索引值(dinstinct 索引列)与表 记录的比)比值越大代表选择性越高。
- 前缀索引。例:ADD INDEX `first_name_last_name4`(first_name, last_name(4)); 兼顾索引大小和选择性。