51php 数据不同步,php避免循环查询数据库优化一对多查询

列表查询中一对多查询循环查询优化,mysql循环查询优化

描述

比如查询学生列表,每一行需要包含该学生的家长列表,一个学生对应多个家长。

06b89e30669038d8db23308848890351.png

循环查询方式

先查出学生列表,再循环查询对应的家长列表,需要查询N+1次

但在循环中查询数据不但效率低下而且对数据库造成很大对压力,当循环次数多的时候,一方面会造成严重的网络延迟,一方面可能会连接数据库失败,在开发中应该尽量避免在循环里查询数据库

优化方案

使用关联查询

联合查询所有数据行,再循环处理按学生归类,查询次数1

示例代码

$list = $this

->field('s.id,s.name,u.nickname,u.avatar')

->alias('s')

->leftJoin('user_student us', 's.id = us.student_id')

->leftJoin('user u', 'us.user_id = u.id')

->where(['s.class_id' => $classId])

->paginate([

'list_rows' => $size,

'page' => $page,

]);

if ($list->isEmpty())

return ['data' => '', 'code' => 20404, 'msg' => '没有数据'];

$temp = [];

foreach ($list as $k => $value) {

$temp[$value['id']] = ['id' => $value['id'], 'name' => $value['name']];

$temp[$value['id']]['parent_list'][] = $value;

}

$data = $list->toArray();

$data['data'] = array_values($temp);

return ['data' => $data, 'code' => 0, 'msg' => 'success'];

使用whereIn查询

先查学生列表,再查出家长列表,最后循环处理数据,查询次数2

thinkphp可以使用模型一对多关联查询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里研究员谷朴:API 设计最佳实践的思考

API是软件系统的核心,而软件系统的复杂度Complexity是大规模软件系统能否成功最重要的因素。但复杂度Complexity并非某一个单独的问题能完全败坏的,而是在系统设计尤其是API设计层面很多很多小的设计考量一点点叠加起来的(也即John Ousterhou…

2018年深度学习的主要进步

在过去几年中,深度学习改变了整个人工智能的发展。深度学习技术已经开始在医疗保健,金融,人力资源,零售,地震检测和自动驾驶汽车等领域的应用程序中出现。至于现有的成果表现也一直在稳步提高。 在学术层面&#xff0…

大横琴科技联合阿里云发布全国首个跨境服务创新平台琴澳通

12月3日,阿里云广东峰会期间,大横琴科技公司联合阿里云发布了全国首个跨境服务创新平台。基于该平台,全国首个跨境服务APP“琴澳通”也正式发布。“琴澳通”将为澳门企业及个人提供服务,推动澳门和广东两地的产业经济联动&#xf…

各类监督方法流行趋势分析

又到一年的年末了,到了进行总结并展望来年的时候了,在这里预祝各位新的一年顺利。闲话少叙,本文将对有监督学习方法进行总结。 机器学习领域在过去几十年中经历了巨大的变化,不可否认的是,虽然有些方法已经存在了很长…

2018年度机器学习50大热门网文

新的一年新气象,总结过去一年,展望新的一年。站在巨人的肩膀上前行,肯定会事半功倍。因此,本文从2018年1月至12月期间挑选出近22,000篇机器学习文章,并进行比较,以挑选出能够提升2019年数据科学技能的前50名…

广东制造按下加速键  千家中小企业上阿里云工业互联网

阿里云广东峰会上,阿里巴巴副总裁、阿里云智能IoT事业部总经理库伟表示,过去2年阿里云与合作伙伴一起助力数千家广东中小企业的数字化转型综合成本降低了70%。 都说中国制造看广东,云计算、物联网、人工智能已成为广东制造发展新引擎。“我们…

阿里云图数据库GraphDB上线,助力图数据处理

GraphDB简介 GraphDB图数据库适用于存储,管理,查询复杂并且高度连接的数据,图库的结构特别适合发现大数据集下数据之间的共性和特性,特别善于释放蕴含在数据关系之间的巨大价值。GraphDB引擎本身并不额外收费,仅收取云…

pom 导入mysql连接,maven项目中的jdbc连接步骤

在maven项目pom.xml中到入驱动包(以下是驱动包代码)mysqlmysql-connector-java8.0.15导入成功会看到Maven Dependencies下有个mysql-connector-Java包然后按下面步骤:package com.base.day16;import java.sql.Connection;import java.sql.DriverManager;import java…

一场稳定、高清、流畅的大型活动直播是怎么炼成的?

双11猫晚是家喻户晓的综艺晚会,在今年的双11,阿里集团为2500万用户提供了一场在线直播视觉盛宴。网友评价这是一场既稳定流畅又高清的直播,当然在这背后离不开阿里云的技术支持。 本次天猫晚会中,视频云首次采用4k和50帧的技术&a…

阿里云联合顶级卫星影像公司发布数字地球引擎

12月3日,在阿里云广东峰会上,阿里云联合超图软件、长光卫星、Maxar技术、四维测绘等顶级卫星影像产业链公司发布数字地球引擎,提供开放式的影像数据集、遥感AI能力、丰富的API接口等,在国土资源监管、水利河道治理、自然环境保护和…

PLSQL 快捷键

文章目录1.创建文本文件2. 添加自定义快捷键3. 配置1.创建文本文件 在D:\software\PLSQL Developer\PlugIns目录下面创建shortcuts.txt 2. 添加自定义快捷键 iINSERT uUPDATE sSELECT fFROM wWHERE oORDER BY dDELETE dfDELETE FROM sfSELECT * FROM scSELECT COUNT(*) FROM…

python numpy sum函数,numpy.sum()的使用详解

numpy的sum函数可接受的参数是:sum(a, axisNone, dtypeNone, outNone, keepdimsnp._NoValue)在参数列表中:a是要进行加法运算的向量/数组/矩阵axis的值可以为None,也可以为整数和元组其形参的注释如下:a : array_like elements to sum.a:用于进行加法运算…

云栖专辑 | 阿里开发者们的第9个感悟:脱离产品价值,是难以出创造性的代码的

2015年12月20日,云栖社区上线。2018年12月20日,云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来,寒冬中,最值得投资的是学习,是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的…

提升沟通效率52%  阿里政务钉钉助力政府数字化转型

阿里云广东峰会期间,阿里巴巴政务钉钉事业部总经理叶军表示,在浙江省试点应用政务钉钉期间,政府人员沟通效率提高了52%。政务钉钉是在线政务协同平台,它整合了政务专属通讯录、千人千面的工作台、智能会议、移动办公等诸多功能&am…

十余位权威专家深度解读,达摩院2019十大科技趋势点燃科技热情

2019年的第一个工作日,阿里巴巴达摩院重磅发布了2019十大科技趋势,引发社会各界对未来科技的讨论和向往。这一发布同样引来科学界的普遍关注。来自包括中科院、清华大学、佛罗里达大学、杜克大学等权威学术机构的十余位专家就此发表评论,深度…

云栖专辑 | 阿里开发者们的第10个感悟:产品经理最优秀的能力,是框架思维,脑海中有蓝图

2015年12月20日,云栖社区上线。2018年12月20日,云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来,寒冬中,最值得投资的是学习,是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的…

Dubbo作者亲述:那些辉煌、沉寂与重生的故事

摘要: Dubbo 这个名字,最后会变成一个 Apache 的商标,会成为一个在 GitHub 上有 2 万多人关注、一百多人参与贡献的超级项目。 梁飞在 2011 年开源 Dubbo 这个项目的时候,完全没有想过,Dubbo 这个名字,最后…