由于数据量非常大(单表:四五百万条数据),需要对这种类型的表进行统计查询,并插入到对应的Maxstatistics(里面是Id、Value、Time) MinStatistics 等表。

这个表的结构如下:CREATE TABLE `datarecord` (

`Id` smallint(6) NOT NULL,

`Time` datetime NOT NULL,

`Value` int(11) DEFAULT NULL,

`Quality` int(11) DEFAULT NULL,

PRIMARY KEY (`Id`,`Time`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

解释:这个datarecord 表中有1250个Id,每个Id都有将近3600条记录。而现在的工作就是通过

sql语句实现:统计出来每个Id的Value最大值,并且插入到MaxStatistics 。关键在统计Value最大值会耗费非常多的时间,需要将近5分钟的时间。再加上最小值平均值等的统计,就非常缓慢,以至于是不能够接受的。以下是小弟目前的查询插入语句,希望各位能给出些建议。谢谢。。。

insert into Maxstatistics(`Id`,`Value`,`Time` ) SELECT a.`Id`,a.`Value`,a.Time

FROM datarecord  a,(SELECT Id ,max(`Value`) as valueb FROM datarecord GROUP BY Id) b where a.Id=b.Id and a.`Value`=b.valueb

关于MySql 性能补充:如果没有索引或者改变引擎的前提下,但是从400多万的数据表中查询count(*)或者是查询max(Value) 都是要3-4分钟。非常的慢。添加了索引(索引是datarecord中Id和Value的联合索引,也试过Value的索引)在查询count(*) 与max(value)就很快了。都是1-2s解决的。不过对于刚才的语句好像没有什么显著的变化(好像说道GROUP BY 和索引有冲突,但是我也不知道怎样才能做到查询每个Id最大值)。希望大家能给出合理的建议,如果语句需要改善也请给些建议或者观点,非常感谢!!!十分渴望!!!

想问问大家遇到这种问题是如何对待的。还是说MySql单表到了几百万的级别就速度非常慢了吗?谢谢大家。

mysql 性能统计_MySql 的统计查询性能问题相关推荐

  1. 通过手动创建统计信息优化sql查询性能案例

    本质原因在于:SQL Server 统计信息只包含复合索引的第一个列的信息,而不包含复合索引数据组合的信息 来源于工作中的一个实际问题, 这里是组合列数据不均匀导致查询无法预估数据行数,从而导致无法选 ...

  2. execution 排除_使用SQL Server 2016 Live Execution统计信息对SQL查询性能进行故障排除

    execution 排除 SQL Server Management Studio a graphical interactive that allows you to interact with t ...

  3. mysql 索引计划_Mysql索引、查询计划、优化方向

    索引 Innodb索引(聚集索引)(聚簇表分布) Innodb是索引组织表,其结构是B+Tree.其表索引结构是聚簇表分布. 其叶子节点保存了Key+Row Data(聚集索引,按主键排序),其Key ...

  4. mysql复数记录_mysql 数据库设计查询规范

    (一)建表规约 1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint(1表示是,0表示否) .说明:任何字段如果为非负数,必须是unsigned. ...

  5. mysql排重_mysql 排重查询

    GROUP BY 语句可以实现某一列的去重查询. 直接上语句: select io_dev_id from io_info where (TID=1 AND host_name='yang1') GR ...

  6. mysql 事件统计_mysql事件统计之PERFORMANCE_SCHEMA基础详解

    概述 MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数.并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引 ...

  7. mysql 统计_mysql数据统计级别技巧

    本文提及技巧只适用数据统计,OLAP场景,不建议用于业务sql.   分组top问题 知识点:巧用局部变量,实现Hive窗口分析函数功能row_number() over(partition by e ...

  8. mysql 插入优化_MySQL批量SQL插入性能优化

    对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长.特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久.因此,优化数据库插入性能是很有意义的. ...

  9. mysql 计算成功率_mysql数据统计技巧备忘录

    mysql 作为常用数据库,操作贼六是必须的,对于数字操作相关的东西,那是相当方便,本节就来拎几个统计案例出来供参考! order订单表,样例如下: CREATE TABLE`t_order` ( ` ...

最新文章

  1. 他研究了5000家AI公司,说人工智能应用该这么做!
  2. C语言实现单链表的逆置
  3. Android开机画面~(自己还没试验)
  4. 开发工程师的职场人生路(转)
  5. java 画砖块,钢笔画入门:教你画砖块
  6. 拓扑排序排课系统_视频结构化人脸布控系统
  7. 简洁css竖型tab选项卡(用)
  8. vue用阿里云oss上传图片使用分片上传只能上传100kb以内的解决办法 1
  9. python 服务发现_什么是服务发现?
  10. 用html布局象棋棋盘,5分钟掌握22种常见象棋布局,实例演示象棋布局大全、开局大全...
  11. 安装完 SQL Server 2008 后没有 SQL Server Management Studio
  12. miniusbpcb封装_MINI MICRO A型B型D型USB多类型Altium AD元件库 PCB封装库的电路方案详解...
  13. ecu可以用计算机控制吗,ECU应该怎么调?买来的电脑里的默认ECU程序能用么?
  14. Oracle数据库中,deprecate和desupport的区别,以及Oracle 12.2中的deprecate 的参数
  15. 缓存路由关联的两个生命周期activated和deactivated
  16. OpenCV批量读取路径下所有图片
  17. Windows实现微信双(多)开—微信分身
  18. [计算机组成原理,Cache总容量的计算方法]假设主存地址位数是32位,按字节编址,贮存和Cache采用全相联映射的方式,主存块大小为1个字,每字32位,采用回写法和随机替换的策略,则能存放32K字数
  19. 二维码活码的诞生、技术原理及使用场景
  20. 基于TIA博途的堆栈算法(先进后出)SCL语言程序(V15版本)

热门文章

  1. Leetcode每日一题:110.balanced-binary-tree(平衡二叉树)
  2. c++中vector用法(涵盖算法题中知识点)
  3. 对最大熵模型为什么要最大化熵的一点理解
  4. 35.FFmpeg+OpenGLES+OpenSLES播放器实现(九.OpenGLES播放视频)
  5. 微信小程序——极点日历使用方法
  6. linux中使用gbd进行单布调试
  7. 第一:如何解决robot framework log.html中的中文乱码问题
  8. python统计各分数段人数并可根据选择绘制不同的图形_python习题整理
  9. 利用Linux搭建SVN服务器,详细过程
  10. Log4j CVE-2021-44228后续-CVE-2021-45046,CVE-2021-45105