日期:2014-05-18  浏览次数:20709 次

【面试题】一道SQL相关的面试题,求解答

本人菜鸟一名,面试java时的面试题。

问:给你一条sql语句,目前的情况就是查询效率很差,你会怎么调查解决?

(没有做过相关工作,依据模糊的记忆回答)
答:用explain for查看执行计划,是否全表检索了,是否用了我想用的索引了、、、


问:数据表的索引应该依据什么建立?
答:常用检索字段。

本人很菜的说,请问这两个问题应该如何解答。。。
顺便求一些SQL优化相关的资料或学习方法。
------解决方案--------------------
你这两个问题都是围绕SQL优化的,你面的是DBA么。。这些也不是一句两句说的清楚的,参考一下:
第1个问题:SQL优化
第2个问题:索引优化
------解决方案--------------------
1.建索引是必答的
2.将经常重复使用的记录,可以考虑使用缓存技术
3.表存储优化
------解决方案--------------------
应该是DBA职位

这算发散的题目,回答可以从很多面去回答。
------解决方案--------------------
给一条SQL,先执行下,看看结果集以及消耗的时间。如果明显结果集很少而且时间很长,那么就去分析SQL,摸清SQL的目的再优化,或者使用不同的SQL达到同样的目的