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万条数据查询的优化相关推荐

  1. 大规模数据生成 (500万条数据)

    前言: 最近有一个作业需要 对 大规模数据 进行 性能测试 需要500万条数据,这是一个很大的量,我们无法通过cvs文件这种方式把数据导入数据库 我开始想到了一个解决方案,使用java程序,循环500 ...

  2. python如何给一组数据打标签_用 python 给数据打标签,500 万条数据怎样提高效率?...

    所以说你真的就把pandas 当读取数据的工具了吗.. 增加了一列is_tobacco 作为你说的标记 filter_query 返回含有这些词的列表 效率有一定提升 其次你可以分割后用 multip ...

  3. MySQL一次查几万条数据,【mysql】一次插入几万条数据应该怎么做优化

    刚刚去面试,面试官提问了我一次插入几万条数据有什么优化方法,一次更新几万条数据有什么优化方法,这些我之前都没有用过,希望大家给我解一下惑. 回答 1.insert批量执行,禁止单条insert val ...

  4. mysql select count 5万条数据很慢_mysql亿级数据数据库优化方案测试银行交易流水记录的查询...

    点击上方△蓝字关注我们 带你征服编程和泡妞两座大山 对MySQL的性能和亿级数据的处理方法思考,以及分库分表到底该如何做,在什么场景比较合适? 比如银行交易流水记录的查询 限盐少许,上实际实验过程,以 ...

  5. 查询分析300万笔记录_给你100万条数据的一张表,你将如何查询优化?

    1.两种查询引擎查询速度(myIsam 引擎) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行. ...

  6. 500万条微博数据来源分析

    最近项目不是特别忙,想做一些微博方面的分析和处理工作,如果自己现爬取微博数据,积累数据比较慢,恰好看到北理工张华平老师分享的500万条微博数据,直接借用他的数据分析.下载地址是:http://www. ...

  7. 1万条数据大概占多大空间_mysql亿级数据数据库优化方案测试-银行交易流水记录的查询...

    对MySQL的性能和亿级数据的处理方法思考,以及分库分表到底该如何做,在什么场景比较合适? 比如银行交易流水记录的查询 限盐少许,上实际实验过程,以下是在实验的过程中做一些操作,以及踩过的一些坑,我觉 ...

  8. 测试学习-118-实现大数据平台Es(elasticsearch)1万条数据以上查询

    前言: 大数据平台中Es组件elasticsearch是大数据研发项目经常用的组件,因其能实现快速查询数据的特点而备受受欢迎.但是即便是es前期未配置之前,只能支持1万条数据的响应查询. 最直接表现就 ...

  9. Oracle查询前100万条数据

    Oracle不支持select top语句,在Oracle中经常是用order by跟rownum select 列名1 ...列名n from ( select 列名1 ...列名n     fro ...

最新文章

  1. 测量左右磁极的原片磁铁
  2. 【Java基础】对象拷贝
  3. 查询计算机专业及选修了英语的学生,实验五 数据库综合查询(学生)
  4. nfc sim android8,Android NFC相关资料之MifareClassic卡(读写)
  5. vue 不识别svg_vue配置svg 图标显示不出来
  6. Spring中拦截/和拦截/*的区别
  7. 流程平台:示例流程 - 主机申请审批流程
  8. Sessions and Processes
  9. Oracle-SQL程序优化4
  10. HCDA(华为认证数据通信工程师)-华为培训认证
  11. 计算机统计硕士排名,卡内基梅隆大学硕士统计学专业排名务必稳重的去看
  12. HTML表格表单制作
  13. c语言 愚人节题目,愚人节整人题目大全
  14. linux系统怎么拨号上网,在linux中如何拨号上网?
  15. 这些月入5万的程序员们究竟是怎么花钱的?
  16. android hook 第三方app_Android三大hook框架
  17. 团队环境搭建:MTK平台,PTK5.1、Supernova编译环境配置
  18. 靠谱的动漫绘画培训班国内有哪些
  19. 【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
  20. 以大数据、云计算、人工智能、区块链为代表的新技术,开始充当底层技术

热门文章

  1. Paper:《Graph Neural Networks: A Review of Methods and Applications—图神经网络:方法与应用综述》翻译与解读
  2. hdu 3016 Man Down(简单线段树简单DP)
  3. IPv4 和 IPv6 数据报格式详解
  4. 服务器上u盘装机centos7.2
  5. WinNTSetup系统安装、安装WIN7在配置界面,USB键盘鼠标无法使用
  6. 3000元左右性价比最高的手机2023 3000元手机性价比排行榜2023
  7. JSP九大隐式对象详解
  8. readonly 和 disable 区别
  9. 【乐扣小题目】判断三角形
  10. 基于MindSpore实现X3D网络