日期:2014-05-16  浏览次数:20662 次

多表查询优化
今天去面试的时候碰到一个问题:怎么优化多表查询,不知道怎么回答?

------解决方案--------------------
优化多表查询就是尽量不多表查询 你应该反问面试官

多表查询优化往往和业务关系紧密
------解决方案--------------------
无非就是 on 后面字段 做索引 索引的编码 格式相同
多表 查询 能不用就不用 
具体的 要看表结构了
------解决方案--------------------
发散性思维,看你通过这个能想到些什么
1:多表管理查询的流程,查询方式,原理
2:索引该怎么创建,这和1有关联的
3:执行计划不满意时,如何强制链接顺序
4:最左前缀索引,group by只能在最左表上才能用到索引
5:冗余字段,用空间换时间
6:memcache存结果集
7:大查询分拆成小查询
。。。。。。。
------解决方案--------------------
这个你要问面试官,让他举个例子。 然后他说个SQL语句,然后你继续问表中数据分布。 问到你说不下去或者他说不下去了,基本上你的水平就表现出来了。
------解决方案--------------------
如果两个表的查询。

select * from a , b where a.id=b.id and b.col=1 and a.fd<10


不行,就直接自己举个例子,然后进行分析处理。 如何进行优化。 
如果面试官也懂行,他或许会取个更复杂的例子,然后你就要开始分析,一般来说,你肯定需要知道各表中的记录分布情况。 这时你反过来向面试官要求的信息内容就说明了你的水平。