select a.answer_number from answer_record a 
 inner join respondents c on a.respondents_number=c.respondents_number  
 inner join question b on a.question_number=b.question_number  
 where a.question_number=3 and b.question_p=1 and c.email='[email protected]';question_number、question_p、email都尝试建立索引,无效,查询时间为0.800左右。
咋办呢?

解决方案 »

  1.   

    算是快的啦,where后过滤最多的条件放最后
      

  2.   

    这个语句连接表 question b 还有意义吗?用 a.question_number=3 限定了。然后又这个 question_number字段关联。简直多此一举。
      

  3.   

    确实,把 inner join question b on a.question_number=b.question_number  去掉。至少能快一些
      

  4.   

    SELECT a.answer_number FROM 
    (SELECT * FROM  answer_record WHERE question_number=3) a,
    (SELECT * FROM question WHERE question_p=1) b,
    (SELECT * from respondents WHERE email='[email protected]') c
    WHERE a.question_number=b.question_number  AND a.respondents_number=c.respondents_number;这样写,你看看会不会快些