获取用户姓名用leftjoin还是循环查库

问题描述

在获取文章列表中,想要显示创建文章的用户姓名,一般是根据leftjoin获取还是循环获取的数据再去根据uid去查用户表?

阅读 2.3k
2 个回答

为什么要循环获取的数据呢?(不要在循环里执行sql啊喂)
你可以用array_unique(array_column())取出文章表的用户id,
然后用in 用户id的方式查询出用户的id对应的名字,再遍历文章表增加文章作者名字

这也是一种方式。谁快谁慢,我还真没测试过。
关联查询的时候,会锁表,高并发的时候,会造成一定的性能影响。
但是,有句话不是说么,应当尽量减少数据库的操作次数。这里还是有取舍的
总之还是看你们具体的业务情况吧

left join去获取比循环根据uid查用户表快很多, 目前手上的项目有些列表就是查完之后再一条条去查用户名, 有时候一个表甚至要查好几分钟. 改成联合查询之后, 速度和跑一条sql的速度差不多, 基本是秒查

推荐问题