你这样能得到同样的结果吗?第一个$query=select * from tb where id=(id1,id2,id3,id++)
第二个$query=select * from tb where id=id1 or id=id2 or id=id3 or id=id++);
第二个$query=select * from tb where id=id1 or id=id2 or id=id3 or id=id++);
你可以比较一下两个页面运行时间。
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
} $time_start = getmicrotime();
.................//这里放入你的两次不同的代码
$time_end = getmicrotime();
$time = $time_end - $time_start;//代码执行所用的时间(微秒)
是指query还是fetch也要算上?
这好象是两个不同的查询吧,能得到相同的记录应该很奇怪吧
for 循环100次
{
mysql_query("select * from tb where id=".$id++)
.......
}
如果你真的是想查询得到结果而不是拿大家开心的话
上面的代码完全没有必要{
mysql_query("select * from tb where 0<id<100)
.......
}
这不就完全可以吗?
浅妄薄见,望与斟酌
并不是取100个连续的值。比如有一个数组 data[100]
里面放了100个id,
所以用这种方法。for 循环100次
{
mysql_query("select * from tb where id=".$data[$id++])
.......
}
================================================
改成:$query="select * from tb where id=".$data[$id++]
for 循环100次
{
$query.="or id=".$data[$id++];
}
mysql_query($query).请再看看。谢谢。
for 循环100次
{
mysql_query("select * from tb where id=".$data[$id++])
.......
}上面的“id=”循环一百次;
================================================$query="select * from tb where id=".$data[$id++] //id至少为1次
for 循环100次
{
$query.="or id=".$data[$id++]; //id再“or”上100次
}
mysql_query($query). ================================================
上面的"id="至少也有一百零一个值,能得到相同的效果吗?但意思上是相同效果的话,我认为后果会更快一些,毕竟读数据库只一次;
不过,也许你这句一百次的查找已经给PHP优化成一句了,谁知道呢:)
你怎么处理返回值也是很重要的,这不只是速度的问题了.
我想不停的执行连数据库查询会让数据库吃不消的
想想假如有100个人连那个页面,而每个页面又有100条数据库查询
我想差点的数据库就要蹦了吧再者执行多条数据库要多次扫描数据表
而执行一条就扫描一次
-----------------------------------------------
数据库操作应该还是合在一下里快些.
不过,也许你这句一百次的查找已经给PHP优化成一句了,谁知道呢:)
你怎么处理返回值也是很重要的,这不只是速度的问题了.
-----------------------------------------------
你以为php是专用的数据库优化器阿,而且query是实时的,你如果分成100条,必定是作为100次查询
另外,可以说的是绝对1个query解决的问题快(在这种情况下)。但是个人觉得你现在不应该讨论100快还是1快,而应该研究一下为什么你会作出这种蹩脚的问题,你提的问题本身就是一个问题,应该优化你的整个结构
最后,实践出来的才是真理