优化大表(75M+ 行)上的简单 mysql select

2023-12-28

我有一个统计表,它以很大的速度增长(大约 25M 行/天),我想针对选择进行优化,该表适合内存,并且服务器有足够的备用内存(32G,表是 4G)。

我的简单汇总查询是:

EXPLAIN select FROM_UNIXTIME(FLOOR(endtime/3600)*3600) as ts,sum(numevent1) as success , sum(numevent2) as failure from stats where endtime > UNIX_TIMESTAMP()-3600*96 group by ts order by ts;
+----+-------------+--------------+------+---------------+------+---------+------+----------+----------------------------------------------+
| id | select_type | table        | type | possible_keys | key  | key_len | ref  | rows     | Extra                                        |
+----+-------------+--------------+------+---------------+------+---------+------+----------+----------------------------------------------+
|  1 | SIMPLE      | stats        | ALL  | ts            | NULL | NULL    | NULL | 78238584 | Using where; Using temporary; Using filesort |
+----+-------------+--------------+------+---------------+------+---------+------+----------+----------------------------------------------+

Stats是一个innodb表,endtime上有一个正常的索引。我应该如何优化这个?

注意:我确实计划添加汇总表,但目前这就是我所坚持的,我想知道是否可以在没有额外应用程序代码的情况下修复它。


我一直在做本地测试。请尝试以下操作:

alter table stats add index (endtime, numevent1, numevent2);

并删除order by因为它应该隐含在group by(我猜解析器只是忽略了order by在这种情况下,但以防万一:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

优化大表(75M+ 行)上的简单 mysql select 的相关文章

  • 无法绑定多部分标识符

    我在 SO 上看到过类似的错误 但我找不到解决我的问题的方法 我有一个 SQL 查询 例如 SELECT DISTINCT a maxa b mahuyen a tenxa b tenhuyen ISNULL dkcd tong 0 AS
  • Python Peeweeexecute_sql() 示例

    我使用 Peewee 模块作为我的项目的 ORM 我看了整个文档 没有明确的 有关如何处理 db execute sql 结果的示例 我跟踪代码 只能发现db execute sql 返回游标 有谁知道如何处理光标 例如迭代它并获取 返回复
  • 用索引更新表太慢

    我正在观察我们应用程序的实时系统上的探查器 我发现我们定期 每秒 运行一条更新指令 速度相当慢 每次大约需要400ms 查询包含此更新 这是缓慢的部分 UPDATE BufferTable SET LrbCount LrbCount 1 L
  • Oracle BLOB 与 VARCHAR

    我需要在表的一列中存储一个 大 SQL 查询 我想使用BLOB场地 需要明确的是 我想存储查询 而不是其结果 最好使用什么 BLOB or a VARCHAR 或者也许还有别的什么 另一种选择是 CLOB 对于文本数据 使用 CLOB 比使
  • MySQL:错误 1215 (HY000):无法添加外键约束

    我读过了数据库系统概念 第六版 西尔伯沙茨 我将在 OS X 上的 MySQL 上实现第 2 章中所示的大学数据库系统 但我在创建表格时遇到了麻烦course 桌子department好像 mysql gt select from depa
  • 如何从 T-SQL 中的“/”分隔字符串中获取几乎最后一个子字符串?

    如果我有一个由用 字符分隔的其他字符串 xxx xxx xxx xxxx 组成的字符串 如何使用 t sql 获取最后一个和几乎最后一个 最后一个之前的 部分 它可能应该是 charindex 和 right 的某种组合 declare s
  • 错误 1045 (28000) 用户“root”@“localhost”访问被拒绝(使用密码:YES)

    请原谅我是一个完全的初学者 我正在尝试使用 cmd 行登录到我在 Windows 计算机上使用 easyPHP 安装的第一个 mySQL 数据库 我将进入 mysql bin 并输入命令 mysql u root 为了登录 但我收到以下消息
  • 如何使用索引优化 InnoDB 上的 COUNT(*) 性能

    我有一个较大但狭窄的 InnoDB 表 有大约 9m 条记录 正在做count or count id 桌子上的速度非常慢 6秒以上 DROP TABLE IF EXISTS perf2 CREATE TABLE perf2 id int
  • SQL Server在查询执行后不释放内存

    我想我在这里有一个很多人可能遇到过的基本问题 当我在 SQL Server 中运行查询时 它将在内存中加载查询执行所需的所有数据 例如 如果存在联接 那么它将从这两个表加载必要的数据 但是当查询完成执行内存时SQL Server 消耗的数据
  • 如何从 DATE 中提取小时、分钟和秒

    我有以下查询 select cast max bid ts as TIMESTAMP from my table 我投了max bid ts因为这是双打 我想成为TMESTAMP 这个查询返回类似这样的内容 2016 04 21 12 41
  • 如何检查一组行中是否至少有一个具有特定值

    我需要找到属于满足特定条件的任何组的所有行 我将组定义为共享 组 列中的值的几行 相关组必须至少包含一行且 Eligible 设置为 true 并且该组中至少有两行在 Group 或 Eligible 以外的任何列中必须彼此不同 示例表 G
  • MySQL 相当于 ORACLES 的rank()

    Oracle 有 2 个函数 rank 和dense rank 我发现它们对于某些应用程序非常有用 我现在正在 mysql 中做一些事情 想知道他们是否有与这些相同的东西 没有什么直接等效的 但你可以用一些 不是非常有效的 自连接来伪造它
  • 删除多对多关系中的相关行

    我正在删除位于多对多关系的一个站点上的表中的一行 我还想删除该关系另一端的任何相关行 例如 假设我有下表 我想从中删除一行Cars 我还想从中删除任何相关行Drivers当然 任何不再需要的行CarDrivers Table Cars Ca
  • 从 SQL Server 中的字符串中提取子字符串

    我需要从字符串中提取子字符串的一部分 如下所示 YY 12 Yellow ABC WSA Thisone A SS 4MON DHHE A A 我需要按如下方式提取字符串 Yellow Thisone DHHE 你可以使用这样的东西 dec
  • 如何在 Presto 中删除重复数据

    我有一个 Presto 表 假设它有 id name update time 列和数据 1 Amy 2018 08 01 1 Amy 2018 08 02 1 Amyyyyyyy 2018 08 03 2 Bob 2018 08 01 现在
  • PhpStorm Docker PHPUnit 数据库

    I setup https blog jetbrains com phpstorm 2016 11 docker remote interpreters PhpStorm PHP PHPUnit 与 Docker 我在 PhpStorm 数
  • 针对树结构优化 SQL

    如何从数据库中获取具有最佳性能的树形结构数据 例如 假设数据库中有一个文件夹层次结构 文件夹数据库行所在的位置ID Name and ParentID列 您会使用特殊的算法一次获取所有数据 最大限度地减少数据库调用量并在代码中处理它吗 或者
  • 实体框架..自引用表..获取深度=x的记录?

    我成功地在实体框架中使用自引用表 但我不知道如何获得所需深度的记录 这应该是什么逻辑 Model public class FamilyLabel public FamilyLabel this Children new Collectio
  • @Where 子句在 hibernate join 查询中不起作用

    我有 2 个带有 Where 注释的实体 第一个是类别 Where clause DELETED 0 public class Category extends AbstractEntity 且有如下关系 OneToMany fetch F
  • MySQL 周数和新年

    我现在正在开发的网站有一个仪表板 显示各个用户在前一周输入的数据 我使用简单的 WHERE 子句选择此数据 SELECT FROM table WHERE WEEK date 1 WEEK CURDATE 1 1 然而 新年即将到来 当用户

随机推荐

  • 将雪(和降雪)与 AWS 结合使用,在 R 中进行并行处理

    相对于我之前的类似的问题 https stackoverflow com questions 7241244 using aws for parallel processing with r 我尝试在AWS上使用snow snowfall进
  • .NET 4.5 中的序列化中断

    我们遇到了一个仅在 NET 4 5 中发生的序列化问题 相同的代码在 NET 4 中工作正常 我们正在尝试使用一些字段序列化继承类型 基类和继承类都标记为可序列化属性 我们在 Web 服务的客户端收到一个异常 说有一个方法访问异常在服务器端
  • 用于模糊字符串比较的好 Python 模块? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动
  • Wagtail:如何将模型实例传递给小部件并在模板中访问它

    我有一个基于 Wagtails 的模型Page模型 我正在将自定义小部件分配给模型字段之一 渲染管理视图时是否可以在小部件 HTML 模板中访问模型实例 我需要管理视图中的小部件来知道哪个 IDSimplePage该小部件所属 即获取值 p
  • OSX Mavericks - 不再安装 BIND...如何使本地 DNS 服务器正常工作?

    我一直在 OSX 上使用 BIND 为我的本地开发机器提供本地 DNS 解析器 特别是为了方便虚拟机访问我的本地开发环境 愚蠢的是 我决定连夜升级到 OSX Mavericks 但似乎不再安装 BIND 即使添加了命令行开发人员工具 有人建
  • clang 尝试捕获失败

    这是我所说的代码部分 try std cerr lt lt first try lt lt std endl po store po parse config file ifs configFileOptions false vm catc
  • 从两个向量创建新的 ID(双向)

    我在一个由因子组成的数据框中有两个向量 每个向量中有约 10000 个唯一因子 这是我的数据的简化示例 tg lt data frame A sample letters 1 5 30 replace TRUE B sample lette
  • Pandas 数据框 to_csv - 分成多个输出文件

    将非常大的数据帧 50GB 分割成多个输出 水平 的最佳 最简单方法是什么 我想过做类似的事情 stepsize int 1e8 for id i in enumerate range 0 df size stepsize start i
  • 如何在 JasperReports Server 4.0.0 中配置邮件服务器设置

    我在用着JasperReports服务器4 0 0我想如何配置邮件服务器设置以通过报告计划邮寄报告 我怎样才能做到这一点 有人知道这个吗 您应该编辑
  • 由于“完美分离错误”,无法运行逻辑回归

    我是 Python 数据分析的初学者 并且在完成这项特定任务时遇到了麻烦 我进行了广泛的搜索 但无法找出问题所在 我导入了一个文件并将其设置为数据框 清理了文件中的数据 然而 当我尝试将我的模型拟合到数据时 我得到了 检测到完美分离 结果不
  • 为 mat-select 预选多个值 - Angular 6

    我正在尝试在垫选择中预选多个选项 到目前为止我还无法实现这一目标 这是 HTML 文件
  • 如何增加 Cassandra 的数据流读取并行性

    我正在尝试将大量数据 2 TB 30kkk 行 从 Cassandra 导出到 BigQuery 我所有的基础设施都在 GCP 上 我的 Cassandra 集群有 4 个节点 每个节点 4 个 vCPU 26 GB 内存 2000 GB
  • 转置一维数组

    所以我有一个包含 N 个值的一维数组 其中 N 是一个完全平方数 我将这个一维数组可视化为二维数组 尽管事实并非如此 例如 具有值的数组int Array 0 1 2 3 4 5 6 7 8 That is int Array new in
  • Javascript父窗口如何向弹出窗口发送数据?

    我一直在使用 HTML 和 Javascript 编写基于浏览器的应用程序 或者更确切地说 快速构建应用程序原型 我希望主窗口能够显示带有动态数据的弹出窗口 但是 我不知道如何在 Javascript 中将数据从父窗口推送到弹出窗口 请注意
  • 对列表中的字典元素进行排序

    对于这份清单 u status u Active u name u X u orgID u 109175 u type u Created Section class addbold u status u Active u name u A
  • PHP DOMDocument - 为什么破折号“–”转换为 –

    我正在使用 DOMDocument 来提取一些段落 这是我导入的初始 htm 文件的样子 p class 8reference span 1 span span Sivonen K Jones G Cyanobacterial Toxins
  • Android 开发:在单独的类文件中包含 AsyncTask

    我一直在尝试各种示例 试图熟悉 AsyncTask 到目前为止 我看到的所有示例都将 AsyncTask 包含到主 Activity 的 onCreate 方法中 我不太喜欢它 所以我想看看将它分成自己的类有多难 到目前为止我有这个 the
  • babel-esLint的问题:解析错误:ES模块的require()

    你好 我需要你的帮助 我该如何修复这个错误 解析错误 不支持来自 Desktop Projects MealsToGo node modules babel eslint lib require from eslint js 的 ES 模块
  • 如何在 Unity 中 EncodeToPng 压缩纹理

    我开发了一个保存纹理 屏幕截图 的应用程序 我需要压缩它们 但是然后 我不能使用EncodeToPNG方法 以便在屏幕上显示图像 我的步骤 Texture2D tex new Texture2D recwidth recheight Tex
  • 优化大表(75M+ 行)上的简单 mysql select

    我有一个统计表 它以很大的速度增长 大约 25M 行 天 我想针对选择进行优化 该表适合内存 并且服务器有足够的备用内存 32G 表是 4G 我的简单汇总查询是 EXPLAIN select FROM UNIXTIME FLOOR endt