记一次500万条数据查询的优化
1.公司业务系统数据平台今早发现有个接口响应很慢,经过逐一排查后,发现问题所在。该接口是做的一个单表查询,表的数据有500万条左右。
- 下面是表结构
- 下面是优化前的查询
SELECT count(IP) as uvCount,visitDate from (select v.IP,DATE_FORMAT(v.CREATE_DATE,'%Y-%m') as visitDate from VISIT vwhere v.CREATE_DATE >= str_to_date(concat('2018-06-25',' 00:00:00'), '%Y-%m-%d %H:%i:%s')and v.CREATE_DATE <= str_to_date(concat('2019-10-25',' 23:59:59'), '%Y-%m-%d %H:%i:%s')group by IP-- and v.ID in (select a.ID from VISIT a group by a.IP having count(a.IP) <2)) t3 GROUP BY visitDate ORDER BY visitDate ASC
跑下来的时间大概在15s左右。
- 下面是经过优化后的SQL
SELECT count(IP) as uvCount,visitDate from (select v.IP,DATE_FORMAT(v.CREATE_DATE,'%Y-%m') as visitDate from VISIT vwhere v.CREATE_DATE >= str_to_date(concat('2018-06-25',' 00:00:00'), '%Y-%m-%d %H:%i:%s')and v.CREATE_DATE <= str_to_date(concat('2019-10-25',' 23:59:59'), '%Y-%m-%d %H:%i:%s')-- group by IPand v.ID in (select a.ID from VISIT a group by a.IP having count(a.IP) <2)) t3 GROUP BY visitDate ORDER BY visitDate ASC
跑下来用了4s左右。
- 总结:
- 如果数据量过大的查询,在子查询中尽量避免使用group by。
- 子查询中的group by 语句可以使用其他代替。
- 查询慢,先优化sql,sql优化不了再想其他办法。
记一次500万条数据查询的优化相关推荐
- 大规模数据生成 (500万条数据)
前言: 最近有一个作业需要 对 大规模数据 进行 性能测试 需要500万条数据,这是一个很大的量,我们无法通过cvs文件这种方式把数据导入数据库 我开始想到了一个解决方案,使用java程序,循环500 ...
- python如何给一组数据打标签_用 python 给数据打标签,500 万条数据怎样提高效率?...
所以说你真的就把pandas 当读取数据的工具了吗.. 增加了一列is_tobacco 作为你说的标记 filter_query 返回含有这些词的列表 效率有一定提升 其次你可以分割后用 multip ...
- MySQL一次查几万条数据,【mysql】一次插入几万条数据应该怎么做优化
刚刚去面试,面试官提问了我一次插入几万条数据有什么优化方法,一次更新几万条数据有什么优化方法,这些我之前都没有用过,希望大家给我解一下惑. 回答 1.insert批量执行,禁止单条insert val ...
- mysql select count 5万条数据很慢_mysql亿级数据数据库优化方案测试银行交易流水记录的查询...
点击上方△蓝字关注我们 带你征服编程和泡妞两座大山 对MySQL的性能和亿级数据的处理方法思考,以及分库分表到底该如何做,在什么场景比较合适? 比如银行交易流水记录的查询 限盐少许,上实际实验过程,以 ...
- 查询分析300万笔记录_给你100万条数据的一张表,你将如何查询优化?
1.两种查询引擎查询速度(myIsam 引擎) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行. ...
- 500万条微博数据来源分析
最近项目不是特别忙,想做一些微博方面的分析和处理工作,如果自己现爬取微博数据,积累数据比较慢,恰好看到北理工张华平老师分享的500万条微博数据,直接借用他的数据分析.下载地址是:http://www. ...
- 1万条数据大概占多大空间_mysql亿级数据数据库优化方案测试-银行交易流水记录的查询...
对MySQL的性能和亿级数据的处理方法思考,以及分库分表到底该如何做,在什么场景比较合适? 比如银行交易流水记录的查询 限盐少许,上实际实验过程,以下是在实验的过程中做一些操作,以及踩过的一些坑,我觉 ...
- 测试学习-118-实现大数据平台Es(elasticsearch)1万条数据以上查询
前言: 大数据平台中Es组件elasticsearch是大数据研发项目经常用的组件,因其能实现快速查询数据的特点而备受受欢迎.但是即便是es前期未配置之前,只能支持1万条数据的响应查询. 最直接表现就 ...
- Oracle查询前100万条数据
Oracle不支持select top语句,在Oracle中经常是用order by跟rownum select 列名1 ...列名n from ( select 列名1 ...列名n fro ...
最新文章
- 测量左右磁极的原片磁铁
- 【Java基础】对象拷贝
- 查询计算机专业及选修了英语的学生,实验五 数据库综合查询(学生)
- nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)
- vue 不识别svg_vue配置svg 图标显示不出来
- Spring中拦截/和拦截/*的区别
- 流程平台:示例流程 - 主机申请审批流程
- Sessions and Processes
- Oracle-SQL程序优化4
- HCDA(华为认证数据通信工程师)-华为培训认证
- 计算机统计硕士排名,卡内基梅隆大学硕士统计学专业排名务必稳重的去看
- HTML表格表单制作
- c语言 愚人节题目,愚人节整人题目大全
- linux系统怎么拨号上网,在linux中如何拨号上网?
- 这些月入5万的程序员们究竟是怎么花钱的?
- android hook 第三方app_Android三大hook框架
- 团队环境搭建:MTK平台,PTK5.1、Supernova编译环境配置
- 靠谱的动漫绘画培训班国内有哪些
- 【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
- 以大数据、云计算、人工智能、区块链为代表的新技术,开始充当底层技术
热门文章
- Paper:《Graph Neural Networks: A Review of Methods and Applications—图神经网络:方法与应用综述》翻译与解读
- hdu 3016 Man Down(简单线段树简单DP)
- IPv4 和 IPv6 数据报格式详解
- 服务器上u盘装机centos7.2
- WinNTSetup系统安装、安装WIN7在配置界面,USB键盘鼠标无法使用
- 3000元左右性价比最高的手机2023 3000元手机性价比排行榜2023
- JSP九大隐式对象详解
- readonly 和 disable 区别
- 【乐扣小题目】判断三角形
- 基于MindSpore实现X3D网络