用EXPLAIN测试
例如: EXPLAIN select a.id,a.name from a
inner join b on b.a_id=a.id
inner join c on c.id=b.c_id
where a.name='test' or c.name='test'
察看返回信息

解决方案 »

  1.   

    应该返回好多信息,包括表的索引、将要使用的连接类型,以及在每个表中扫描的行数估计等。然后根据这些信息来优化你的查询语句。
    遵循这样的原则:
    1。比较具有相同类型的列。
    2。比较中应尽量使索引列独立。
    3。在like模式的起始处不要使用通配符
       例如:where name like "%string%"
            优化为:where name like "string%"
    4。帮助优化程序更好的评估索引的有效性
       可用isamchk 或 myisamchk 的--analyze选项给优化程序提供更好的信息,以便分析键值的分布。
    5。利用EXPLAIN检验优化程序操作。
       检查用于查询中的索引是否能很快的排除行本人卓见,仅共参考!