面试经验总结——数据库篇

111 阅读1分钟

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)估计全表扫描比索引快的话不使用