楼主可以执行 
explain select A.* from A left join B on A.id = B.id where A.type = 'csdn';
查看MYSQL的执行计划。
如果想了解更多语句的优化步骤,则可以参考MYSQL官方免费手册的第七章《优化》

解决方案 »

  1.   

    desc sql
    分析语句执行时间
      

  2.   

    还是看看你那个书什么时候、什么人写的吧。
    另外,从原理分析也很容易分析出来,这种不会有所谓的笛卡尔问题。
    左表先被打开,利用索引type定位数据,然后通过主键id直接获取B数据(假设哈)。
    如果是这样的话,那么它就是一个标准的索引查询定位,主键关联的关系应用。如果你的sql中where 是b.type='csdn',你就会看到不一样的问题了。那时候的问题其实变成了右表为大表的问题了:)
      

  3.   

    表连接的时候有pushed down condition 对于内部表的过滤条件,SQL优化器会将判断放到外部表去