thinkphp查询内容是否存在find和count哪个效率高些

胡一筒 2018-11-08 09:39:53
比如查询用户是否购买过该产品,需要到订单表根据用户id和产品id查询是否存在记录

$isBuy = $mOrder->where($map)->count();
if($isBuy > 0 ) {
echo "已购买";
} else {
echo "未购买";
}

$isBuy = $mOrder->where($map)->find();
if(!empty($isBuy) ) {
echo "已购买";
} else {
echo "未购买";
}

大概有百万条数据,这两种count和find哪个效率更高,对数据库影响更小呢?
...全文
1117 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kis龍 2018-12-06
  • 打赏
  • 举报
回复
我感觉一般 find 好,
find 找到 1条就返回
count, 到1条 +1 , 第二条在+1; 当然条件相同的可能有缓存, 记住结果直接返回

xuzuning 2018-11-27
  • 打赏
  • 举报
回复
不同的应用场合间不能比较优劣
看小雪 2018-11-27
  • 打赏
  • 举报
回复
个人感觉应该find好些。

同样的条件:假设你的$map是走索引的情况,效果差不多。如果$map部分不走索引,可能要在几百条数据中count,还是用find吧。
tottyandbaty 2018-11-08
  • 打赏
  • 举报
回复
一般来说,如果你的表引擎是innodb.那么这个count的问题就出来了。
下雨的声音丶 2018-11-08
  • 打赏
  • 举报
回复
这个你测试一下不就知道了,这个得看你的表结构跟你的查询条件等等因素 。一般来说find()应该要好点
小罗的小刘 2018-11-08
  • 打赏
  • 举报
回复
你可以开启调试模式来瞧瞧 不过正常相差无几

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧