1.索引
本质上是一种数据结构,可以是B树,也可以是B+树
2.MyISAM和InnoDB的区别
3.SQL执行的顺序
4.什么是组合索引
多个列组成的索引
MySQL组合索引“最左前缀”的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引
如声明索引:ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);
相当于建立这些索引: usernname,city,age usernname,city usernname
组合索引在多条件查询时,远比单索引效率高
5.什么情况下索引失效
(1)以通配符%和_开头作查询时,MySQL不会使用索引
(2)where条件中使用了索引,order by中就不会使用,默认排序ok的话尽量少用order by,尽量不要多列排序,用的话建索引
(3)列中使用函数会使索引失效
(4)使用or会使索引失效,除非or中的每列都有索引
(5)字符串索引不使用引号会失效
(6)估计全表扫描比索引快的话不使用