我现在都是先写一个sql查出所有用户数组,然后foreach循环这个数组拿id查他的所有商品数据,有没好点儿的方法
商品的基本数据是可以缓存的 尤其是大访问量很明显数据库走的越少越好
但是用户买了什么商品还是要走数据库 好一点就是读写分离咯
如果用户id有外键就用left join查一下。
如果没有索引的话就你这个方法就行了。
join语句可以实现
这个同时取出来就得join了,适当加索引,封装成存储过程来调,会快点,我觉得如果访问量大了的话,把这两个逻辑拆开,前端异步取还好
分页查询,比如每页10条,拿到用户的id数组。
查库时候可以用 in(1,2,3,....)。
当然如果访问频繁,最好还是加上缓存
create view as select from join的方式创建一个视图,注意添加索引,然后当成一个表来查询就可以了
一般来说用户跟商品是要绑定外键的。这种情况下使用join(leftjoin,rightjoin..)可以满足一次性全部取出来。如果没有绑定外键的话,那么我建议你可能得重新设计下去绑定外键,毕竟外键在用户信息更新或删除方面自动更新或删除商品。