数据库篇:
Q:你所知道的SQL优化方式有哪些
A:目前大多数数据库产品已经实现了在执行SQL时的自动优化,如果面试官提到这个问题,多半是在考验你的SQL编写方面的经验积累,简单总结如下:
- 查询时尽量指明字段而非全表扫描。
- 对常用字段添加索引,加快查询速度。
- 如非必要,不要一次查询就获取全表数据,建议使用查询分页。
- 避免在列上执行运算,可能会导致数据库放弃使用索引。如select * from admin where year(admin_time)>2014
- 使用连接代替子查询,使用联合(union)代替虚拟表
Q:哪些情况会导致查询不走索引?
A:
- 查询条件中使用OR关键字可能会导致索引失效。
- 对数据列字段(表字段)进行函数运算或比较运算时会导致索引失效。
- 使用模糊查询时会导致索引失效。
- 如果列类型为字符串且查询时未对查询条件加引号时会导致索引失效。