有两个表: comment 和 user现在需要列出某篇文章的所有评论,有两种方法:1、用两表联合查询一次性全查出来。select * from comment,user where comment.uid = user.uid
2、先查出评论,再循环取得用户信息。select * from commentfor($comments as $item){
   select * from user where uid = $item['uid']
}
当数据量很大时,这两种查询哪个速度更快些?
我这里没有规模数据,没法测试,谢过各位!

解决方案 »

  1.   

    显然第一种快!
    总的时间比较少。select * from comment,user where comment.uid = user.uid
    全部由数据库一次性完成。一条语句。 其实在MYSQL内部它仍是按照你的第二种的机制来实现。但你的第二种显然会提交多个  select * from user where uid = $item['uid'] 语句,会在SQL语句的提交和结果的传送上有部分开销。
      

  2.   

    肯定第一个快,网络传输需要时间,还有第二种方式首先把comment表中的数据全查出来了,很多数据是多余的。