有关php业务逻辑,mysql优化问题
有一个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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
数据库的join
了解下多表联查,或者直接了解 join 的使用方法就好,这个问题并不难,是业务上常见的需求。
直接使用join on , 或者left join on 都行, 或者你可以尝试mysql的 in() 方法