php从mysql获取数据的时候数据关联表数量应该控制在什么范围

发布于 2022-09-06 07:47:29 字数 1034 浏览 14 评论 0

$result = $this->alias('a')
                ->field('a.id,a.guest_name,a.guest_family_name,a.is_abroad,a.guest_first_name,a.guest_nationality,a.guest_sex,a.is_often,d.certificate_num,e.name certificate_type,b.room_id,c.room_name,g.group_name,a.checkin_time')
                ->where($where)
                ->where('a.guest_name|a.guest_family_name|a.guest_first_name',$name)
                ->join('account b','a.account_id=b.id')
                ->join('hotel_room c','b.room_id=c.id')
                ->join('account_user d','a.guest_id=d.id')
                ->join('account_certificate e','d.certificate_id=e.id')
                ->join('account_group g','a.group_id = g.id','LEFT')
                ->order('a.id','desc')
                ->paginate($arr['limit'],false,['page'=>$arr['page']]);
                
                
                
                

如上,这是目前我们项目中获取数据的写法,关联了多个表(表不是我架构的),问题是这样关联表对查询速度是有影响的吧?如果有应该如何重新设计查询语句?

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

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

发布评论

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

评论(1

溺渁∝ 2022-09-13 07:47:29

影响太大了。 JOIN 应该是按需 JOIN ,比如作查询条件时可以用 WHEN ,能不联就不联。
但是看你的查询字段每个表都要联,可以查出主记录后遍历查每一个关联的字段。

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