如题 当遇到多个表关联 需要查询出来的 时候 考虑到效率和资源的问题 是应该联表还是 foreach 第一张底表 然后去各个表里单独查询? 还是有说有更好的解决办法? 还有个问题 就是一般排序的话是用 mysql 的 ORDERBY 还是拿出来用 PHP 排序? MYSQL 的 ORDERBY 的开销太大 而 PHP 对一些二维维数组排序貌似不是很友好?
谢谢各位
1 z5864703 2016-10-14 17:16:27 +08:00 哪怕分开查询,也可以做到不用 foreach 每个表去查。 可以参考 laravel 框架的 ORM 设计 |
![]() | 2 solaro 2016-10-14 17:23:59 +08:00 php 中如果追求速度、效率,可以这么干:查出一个表的数据,然后丢给 php 变量,最后通过 php 的自身去拼凑数据。熟读会快很多,直接在 php 里 foreach 进行表查询,其实本质上是执行多了 N 次的数据库操作,如果不追求速度和效率可以这么干,写代码省事,如果要优化,最好别这么干 |
![]() | 3 qqjt 2016-10-14 17:31:34 +08:00 请使用 laravel 框架,一次性解决你说的各种问题 |
4 zhangjieren OP |
5 mingyun 2016-10-15 00:00:22 +08:00 ![]() 肯定不能在 foreach 查询,可以先查一个表的数据,然后用 in 查另外一个表,再映射下返回 |
![]() | 6 msg7086 2016-10-15 13:16:51 +08:00 可以去看一下 ORM 的 N+1 问题。 |