【面试题】一道SQL相关的面试题,求解答
本人菜鸟一名,面试java时的面试题。
问:给你一条sql语句,目前的情况就是查询效率很差,你会怎么调查解决?
(没有做过相关工作,依据模糊的记忆回答)
答:用explain for查看执行计划,是否全表检索了,是否用了我想用的索引了、、、
问:数据表的索引应该依据什么建立?
答:常用检索字段。
本人很菜的说,请问这两个问题应该如何解答。。。
顺便求一些SQL优化相关的资料或学习方法。
------解决方案--------------------你这两个问题都是围绕SQL优化的,你面的是DBA么。。这些也不是一句两句说的清楚的,参考一下:
第1个问题:SQL优化
第2个问题:索引优化
------解决方案--------------------1.建索引是必答的
2.将经常重复使用的记录,可以考虑使用缓存技术
3.表存储优化
------解决方案--------------------应该是DBA职位
这算发散的题目,回答可以从很多面去回答。
------解决方案--------------------给一条SQL,先执行下,看看结果集以及消耗的时间。如果明显结果集很少而且时间很长,那么就去分析SQL,摸清SQL的目的再优化,或者使用不同的SQL达到同样的目的