有关php业务逻辑,mysql优化问题

发布于 2022-09-07 16:32:03 字数 497 浏览 26 评论 0

有一个usr表存着uid,username
业务表1 ,存的信息有字段uid,username
业务表2 ,存的信息仅有uid,
(业务表2多条数据对应业务表1一条数据)

问题出现的环境背景及自己尝试的方法

现有:查询遍历业务表2,数据是数组list,还需在list上组装username,以便于前端显示
方法一是每一条list根据uid去数据库usr表查询username;
方法二是先遍历查询业务表1,用一个空数组arr,key存uid,对应的value存username,遍历list,使用array_key_exists判断uid是否是arr其中一个键,如果是则获取arr[uid],作为username

疑问

方法二好处就是避免了多次数据库查询username,但是存在疑问用空数组的key存uid,假如uid数值很大,比如10000,这样是不是会涉及到php数组内存问题(这方面知识不是很了解)
还想知道方法二是不是还有别的缺点,如果有,是不是有其他更好的处理方法

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

少钕鈤記 2022-09-14 16:32:03
select t2.uid as t2uid,t1.uid as t1uid,t1.username from table2 as t2 join table1 as t1 on t2.uid = t1.uid
这样一次性就查询出结果了,前端遍历展示
猥琐帝 2022-09-14 16:32:03

数据库的join

温柔少女心 2022-09-14 16:32:03

了解下多表联查,或者直接了解 join 的使用方法就好,这个问题并不难,是业务上常见的需求。

妥活 2022-09-14 16:32:03

直接使用join on , 或者left join on 都行, 或者你可以尝试mysql的 in() 方法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文