the*_*mix 5 mysql subquery in-subquery
我给出了3个SQL查询:
前2个查询占用不到0.5秒,但第三个查询类似于包含1st作为子查询的2nd,大约需要8秒.
我根据自己的需要为表编制索引,但时间并没有减少.
有人可以给我一个解决方案或提供一些解释这种行为.
谢谢!
小智 5
实际上,MySQL在最后执行内部查询,它会扫描每个索引.MySQL重写子查询以使内部查询完全依赖于外部查询.
例如,它从学生中选择*(取决于您的数据库,但可以返回许多结果),然后将内部查询user_id = 4应用于上一个结果.
开发团队正在解决这个问题,它应该在6.0 http://dev.mysql.com/doc/refman/5.5/en/optimizing-subqueries.html中 "解决".
编辑:
在您的情况下,您应该使用JOIN方法.