楼主可以执行
explain select A.* from A left join B on A.id = B.id where A.type = 'csdn';
查看MYSQL的执行计划。
如果想了解更多语句的优化步骤,则可以参考MYSQL官方免费手册的第七章《优化》
explain select A.* from A left join B on A.id = B.id where A.type = 'csdn';
查看MYSQL的执行计划。
如果想了解更多语句的优化步骤,则可以参考MYSQL官方免费手册的第七章《优化》
解决方案 »
- 急急急---菜鸟求助
- 一篇文章可以属于多个专题,我在文章表里添加一个字段nvarchar(4000) 然后吧文章所属的专题的ID 用豆号分割? 这样写法好不好?
- 用ado记录集recordset更新数据表(使用myodbc驱动 ),如何获得更新记录的自动编号列的值
- 紧急求代码!!车站售票管理系统,嵌入SQL语言的!
- 急问:更新MYSQL的时间字段
- 大量的数据如何导入mysql
- MySQL 用SQL语句查询出数据库某表中的乱码记录
- mysql修改密码的问题
- sql语法哪里写的不对-。-
- 用mysql实现oracle序列的问题
- 查询相同的数据,为什么链表查询比不链表查询更快
- 新人看了一个下午的视频都看不懂数据类型是怎么回事?
分析语句执行时间
另外,从原理分析也很容易分析出来,这种不会有所谓的笛卡尔问题。
左表先被打开,利用索引type定位数据,然后通过主键id直接获取B数据(假设哈)。
如果是这样的话,那么它就是一个标准的索引查询定位,主键关联的关系应用。如果你的sql中where 是b.type='csdn',你就会看到不一样的问题了。那时候的问题其实变成了右表为大表的问题了:)