php 为什么我把sql语句放进foreach里面执行就很慢

代码太多放不下,截了个图,求大家看看

只要我把$res = mysql_query($sql);注释掉速度就很快,这是怎么回事

如果这个是必须这么写的话,你只能优化的表结构,查询条件添加索引,多条件查询的加联合查询,有时间的有序选择时间段。如果数据大的话,你只能做缓存解决此类问题。

看不到你的表结构怎么设计的。无法给出具体的意见。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-22
因为你放在foreach 中的话,循环1次,就是执行SQL操作1次,如果循环100次,就执行100次,所以就慢咯追问

我现在也没有很多数据,你写程序难道这样写过?每循环执行sql语句吗,而且慢的速度大概3、4分钟,你的程序不会这样吧

追答

铁定不会的,如果需要出多张表,我用dataset来存就是了,一次把参数全带进去,执行存储过程出N张表,然后前台处理咯

第2个回答  2013-11-22
说明你的mysql 语句有问题 ,或者你的mysql 链接有问题.
你可以在 $res = mysql_query($sql);

加个exit 试试追问

那样也很快

追答

那就把你下面的sql 语句,都打印出来放到数据库去执行,看看到底那条慢.

追问

有2000多数据我一条条测试啊

追答

测试语句 ,又不是让你把数据全测试了....

测试几条 explan 查看 时间 效率如何

追问

我测试了..几条数据的话看不出什么来。。也没有感觉明显的慢

本回答被提问者采纳
相似回答