关于网友提出的“ php为什么分开查询(非子查询)比join还快?”问题疑问,本网通过在网上对“ php为什么分开查询(非子查询)比join还快?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: php为什么分开查询(非子查询)比join还快?
描述:
公司的电脑不能装oracle 8可视化软件,所以看不了计划开销,好坑…
最近搭了一个网页,获取用户输入(product_name,material,deliver),然后查询oracle。
用的是perl/php里面的数据库模块,其中的sql是这样的:
select p.product_name, d.material, d.deliver, o.supervisor from operator o, detail d, product p where o.operator_id =d.operator_id and o.product_id=p.product_id and p.product_name in (用户输入的两百多个product) and d.material ='用户输入' and d.deliver='用户输入'
其中operator,detail都是百万级的表,product会小一些。operator>detail>>product。
事实上这样的代码运行需要1分钟;但是如果用perl/php分开运行,先得到product_id,再通过它得到operator_id,最后得到对应的supervisor,会快很多,只要5秒钟。因为怕数据库缓存查询数据,运行完了我等了很久再运行第二次的,时间上应该不会有问题。
这是为什么啊,然后我还试过子查询,速度一样很慢。
oracle板块的朋友让我来php板块问,有高人可以指点一下吗?
以上介绍了“ php为什么分开查询(非子查询)比join还快?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4518760.html