首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重播(重新执行) MySQL从日志文件中选择查询

重播(重新执行) MySQL从日志文件中选择查询
EN

Database Administration用户
提问于 2018-09-27 14:32:00
回答 1查看 2.2K关注 0票数 7

MySQL标杆

我想通过重新执行日志文件中的实际查询来评估不同MySQL实例的性能。我知道像mysqlslap这样的工具会产生随机和自动生成的查询,但是我更愿意用实际的查询来测试系统。

为了对新系统进行基准测试,理想情况下,我将使用慢速日志或普通日志收集所有查询,然后将查询重放到新系统。

应该可以过滤查询,例如,我只想重播SELECT语句。我想知道是否有一个积极维护的过程或最佳实践,如何实现热身或基准功能。

需求

  • 重播(重执行)从正在运行的MySQL实例中收集的实际查询
  • 按语句类型(插入、更新、删除)和DML筛选语句
  • 获取统计信息(在迁移之前、之后查询运行了多长时间等)

问题:工具已经过时了

Percona提供了一些似乎是为此目的而设计的工具。所有这些都已从目前的Percona工具包中删除。这些工具是:

  • pt-日志播放器
  • pt-query-摘要的重播选项
  • 查询回放

势解

使用Debian码头容器可以方便地访问较旧的Percona版本,在该版本中可以使用pt-log播放器。使用docker run -it --network="host" --name wheezy debian:wheezy /bin/bash运行容器并在其中安装遗留版本是可行的:

代码语言:javascript
复制
apt-get update
apt-get install percona-toolkit mysql-client

我也尝试过percona-回放,但它似乎也不是很积极地维护。这将是一个很好的工具,但它几乎没有文档化,而且我无法找到只过滤SELECT语句的方法,因为我不想运行其他DML语句。我只看到Percona提供了一个标志来启用只读选项,但是这在普通的MySQL或AWS中是不可用的。

然而,我宁愿使用一个不依赖于未维护的工具的过程。

想象的工作流

  1. 启用慢速查询日志或常规日志
  2. 解析和分析日志文件
  3. 过滤相关查询
  4. 重新执行查询
  5. 比较结果

有什么工具可以让我做到这一点吗?过滤慢速查询日志的最佳方法是什么?如何正确地重放查询?

EN

回答 1

Database Administration用户

发布于 2021-10-22 19:03:58

我们这里使用的是https://github.com/devops-works/slowql,它的工作原理就像一种魅力。

它读取一个缓慢的查询日志并以所需的速度在服务器上重放它。不过,它并没有记录慢速的曲目日志。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/218736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档