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,一经查实,立即删除!

相关文章

Spring Cloud Alibaba发布第二个版本,Spring 发来贺电

还是熟悉的面孔,还是熟悉的味道,不同的是,这次的配方升级了。 今年10月底,Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 Spring Cloud Alibaba,并发布了首个预览版本。随后…

JWT操作工具类分享

分享个人操作的JWT的工具类,基于jjwt库,这是Java圈子中最流行的JWT操作库。 文章目录一、应用场景二、实战案例1. jjwt 开源地址2. 加依赖3. 工具类4. 写配置5. 使用三、企业需求一、应用场景 给用户不敏感信息生成token,作为用户登陆的唯一…

服务器zip解压php,服务器端解压缩zip的脚本

html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">文件解压缩管理// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead// of $_FILES.if (isset($_POST…

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

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

sonar扫描脚本

vim DynamicStartSonarShell.sh添加内容如下&#xff1a; #!/bin/bash #su - $1 -s /bin/bash /app/CodeQualityScan/$2/sonar-scanner.sh su - $1 <<EOF cd /app/CodeQualityScan/$2/; ./sonar-scanner.sh exit; EOF赋予可执行权限&#xff1a; chmod ux DynamicStartSo…

linux php 添加gd,linux(centos)下为php添加添加GD扩展

标签&#xff1a;inux type lib eve MIP 依赖库 重启nginx nginx linuxyum -y install libjpeglibjpeg-devel libpng libpng-devel freetype freetype-devel 安装依赖库yum -y install libjpeg-devel1.首先切换到php源码目录&#xff1a;/usr/local/php-5.6.29…

2018年深度学习的主要进步

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

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

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

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

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

php dom 换行,PHP DOM XML不会在标记之后打印掉换行符

所以我的问题是&#xff0c;当我使用php XML DOM解析器保存时&#xff0c;我的xml文件中的标签没有正确格式化&#xff0c;后面有换行符。$xdoc new DOMDocument();$xdoc->formatOutput true;$xdoc->preserveWhiteSpace false;$xdoc->load($file);$new_topic$xdoc-…

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

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

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

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

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

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

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

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

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

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

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

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

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)在参数列表中&#xff1a;a是要进行加法运算的向量/数组/矩阵axis的值可以为None,也可以为整数和元组其形参的注释如下:a : array_like elements to sum.a&#xff1a;用于进行加法运算…