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

解决方案 »

  1.   

    发散性思维,看你通过这个能想到些什么
    1:多表管理查询的流程,查询方式,原理
    2:索引该怎么创建,这和1有关联的
    3:执行计划不满意时,如何强制链接顺序
    4:最左前缀索引,group by只能在最左表上才能用到索引
    5:冗余字段,用空间换时间
    6:memcache存结果集
    7:大查询分拆成小查询
      

  2.   

    这个你要问面试官,让他举个例子。 然后他说个SQL语句,然后你继续问表中数据分布。 问到你说不下去或者他说不下去了,基本上你的水平就表现出来了。
      

  3.   

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