php从mysql获取数据的时候数据关联表数量应该控制在什么范围
$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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
影响太大了。
JOIN
应该是按需JOIN
,比如作查询条件时可以用WHEN
,能不联就不联。但是看你的查询字段每个表都要联,可以查出主记录后遍历查每一个关联的字段。