php频繁执行sql,php - 一条SQL执行多次 sum 特别慢
php - 一条SQL执行多次 sum 特别慢
小皮2017-04-10 15:55:28 0 5 173
SELECT agentid,count(id) AS allnum,
sum(if(review_flag = 'p'AND delflag IN ('N' , 'P'),1,0)) AS approved_1,
sum(if(review_flag = 'E', 1, 0)) AS approved_2,
sum(if(review_mode = '3' AND review_flag = 'Y',1,0)) AS approved_3,
sum(if(review_mode = '2' AND review_flag = 'Y',1,0)) AS approved_4,
sum(if(review_mode = '1' AND review_flag = 'Y',1,0)) AS approved_5,
sum(if(review_flag = 'N' AND resubmit = 'Y',1,0)) AS approved_6,
sum(if(review_flag = 'N' AND resubmit = 'N',1,0)) AS approved_7
FROM talbe WHERE agentid IN ('A' , 'B', 'C') AND delflag IN ('N' , 'P', 'H')
GROUP BY agentid
该语句执行的时候 需要20多S才完成。
回答
5
0
分享
全部回复 (5)
伊谢尔伦2017-04-10 15:57:285楼
调整表结构. 似乎你把很复杂的逻辑放在 数据表结构里了.
多次sum不是问题. 主要在于这个group by上, 一般的, mysql 全表扫一边, 创建临时表, 排序分组. 这个是很慢的. 你可以试一下 建立 (agentid, delflag, review_flag, review_mode, resubmit, id) 的联合索引.
回复
巴扎黑2017-04-10 15:57:284楼
索引,从新设计你自己标的结构。。。怎么会sum这么多次。。。
回复
大家讲道理2017-04-10 15:57:283楼
这不是sum的问题啊,这条语句本来就复杂。
回复
PHPzhong2017-04-10 15:57:282楼
这种情况我想应该是索引建立的不够科学吧,你可以借助EXPLAIN来具体查看什么地方会卡住,是否用到索引。
同时,给你一个建议,你应该把表结构贴出来,这样路过的大神就能具体帮你分析分析了。
回复
ringa_lee2017-04-10 15:57:281楼
先分组 sum,把结果取到你的程序里去继续加工
回复
php频繁执行sql,php - 一条SQL执行多次 sum 特别慢相关推荐
- 执行计划 分析一条sql语句的效率 mysql_MySQL中一条SQL语句的执行过程
MySQL中一条SQL语句的执行过程 发布时间:2018-11-24 18:35, 浏览次数:390 , 标签: MySQL SQL 查询语句的执行顺序: 1.客户端通过TCP连接发送连接请求到mys ...
- 执行计划 分析一条sql语句的效率 mysql_mysql的SQL语句执行计划分析:EXPLAIN
数据库最常见的操作就是查询了,我们经常要用"SELECT"语法对已有的表进行某种检索,但是在实际应用中,查询前我们并不知道该查询会如何运行.会使用多少时间.会涉及多少字段和记录,每 ...
- MySQL执行过程(一条SQL从Java到数据库都经历了什么)
视频地址 https://www.bilibili.com/video/bv1Sq4y1377k 从我们学习Java开始,我们就学了很多种操作数据库的方式,最开始的JDBC.后面的JPA.HIbern ...
- Jmeter JDBC Request执行多条SQL语句
之前写过Jmeter操作mysql的文章https://blog.csdn.net/qq_36502272/article/details/88891873今天我们再看下如何操作多条sql语句 1.添 ...
- 基础架构:一条sql语句是如何执行的?
一条sql语句是如何执行的? 一条sql语句是如何执行的? 接下来我打算更新一本mysql基础架构专栏,此文章来自与林晓斌老师的极客时间收费栏目,现免费分享给大家 这是专栏的第一篇文章,我想来跟你聊聊 ...
- sql 非主键每年自增_或许你不知道的 10 条 SQL 技巧
上文我们简述了 SQL 的一些进阶技巧,一些朋友觉得不过瘾,我们继续来下篇,再送你 10 个技巧 一. 使用延迟查询优化 limit [offset], [rows] 经常出现类似以下的 SQL 语句 ...
- mysql 拼接sql批量执行_Mysql 学习笔记之 SQL 执行过程
写在开始 本系列源自极客时间 MySQL 专栏,整理而成 在执行下面这个查询语句时的执行的流程是怎么样的? mysql 看过相关资料的同学都可能知道执行流程大概是这样的: 其执行过程为:连接.查询缓存 ...
- 漫谈一条SQL语句的一生
小伙伴想精准查找自己想看的MySQL文章?喏 → MySQL专栏目录 | 点击这里 一个默默无闻的垂钓者 --- 来自城管副队长小王 前言 其实,在我们程序员看来,写SQL就像吃饭一样稀松平常.从前, ...
- mysql多条新增字段sql合并为一条新增
如下,同一张表,有4条分开的新增字段的sql, alter table aadd column column1 tinyint null default null comment 'column1:0 ...
最新文章
- wxWidgets编译安装gtk问题的解决办法
- golang mysql 事务_golang的嵌套事务管理-Go语言中文社区
- 梯度下降法(一)入门
- [tyvj1935 Poetize3]导弹防御塔 (二分图多重匹配)
- 28.Node.js 函数和匿名函数
- 使用 Benchmark.NET 测试代码性能
- 数据不平衡处理_如何处理多类不平衡数据说不可以
- JDBC连接 Mysql数据库
- python内置输入函数_python内置函数 print()
- 内核同步机制-读写信号量(rw_semaphore)
- android color列表,Android应用资源---状态颜色列表(Color State List)
- python爬取内容_Python爬取小说内容
- windows 10下让jar文件双击可以运行的解决方法
- i511260h参数 i5 11260h评测
- matConvNet学习-使用GPU
- NEC加入美国国土安全局AIS网络威胁信息官民共享体系
- Unity小技巧——Inspector中插入数组元素
- 手把手叫你制作一个精美的在线音乐播放器
- Latex: 减少图与文字之间的空白间隙
- 如何4小时做出一个《新型冠状病毒同程查询》 #1
热门文章
- 数据科学家们会被 AutoML 代替吗?
- 告别后端!阿里云小程序 Serverless 教你如何 30 分钟开发小程序!
- @程序员,欠下的技术债怎么还?
- 如何停止在技术债上浪费时间?
- 阿里合伙人名单曝光;百度网盘回应“不买会员限速”;库克:不担心苹果在华表现 | 极客头条...
- 33 关 Python 游戏,测试你的爬虫能力到底及格不?
- 刘强东深夜写信诉苦;华为不排斥卖给苹果 5G 芯片;Facebook 再宕机 | 极客头条...
- 如何设计一个实用的线程池?
- AMD 芯片被曝大量安全漏洞,Linux 之父怒评!
- html垂直线6,HTML的垂直线