标签: slow-log

MySQL 慢查询日志 - SELECT /*!N SQL_NO_CACHE */

使用mysqldumpslow,我可以看到 MySQL 慢查询日志中最常见的条目具有以下形式:

SELECT /*!N SQL_NO_CACHE */ from wp_posts (or wp_comments).
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到有关此语句含义的太多信息,以及我是否需要足够担心它以尝试追踪 WordPress 创建此 SQL 的位置。

mysql mysqldump performance backup slow-log

6
推荐指数
1
解决办法
4745
查看次数

MySQL慢查询日志:巨大的查询时间,无锁时间,扫描的行数极少

我有一个慢查询日志项目,内容如下:

Query_time: 55  Lock_time: 0  Rows_sent: 739  Rows_examined: 739
Run Code Online (Sandbox Code Playgroud)

除了对丢包的猜测之外,我组中没有人可以解释它。是否有一个共同的原因或一组原因导致上述结果?

mysql performance slow-log

6
推荐指数
1
解决办法
3053
查看次数

MySQL Explain 的行数与慢查询日志的行数不同

我在慢查询日志中有这个条目:

# User@Host: user[host] @  [ip]
# Thread_id: 1514428  Schema: db  Last_errno: 0  Killed: 0
# Query_time: 2.795454  Lock_time: 0.000116  Rows_sent: 15  Rows_examined: 65207  Rows_affected: 0  Rows_read: 65207
# Bytsent: 26618
SET timestamp=1407511874;

select off.*,translated_title,translated_description 
from ephpb2b_products off  USE INDEX(id_viewed)  
  INNER JOIN ephpb2b_members mem 
    ON  off.uid = mem.id 
  Left Join ephpb2b_product_language_new pol 
    ON  off.id = pol.offer_id                                         
    and pol.language='en'
where off.approved=1 
order by off.viewed  
LIMIT 15; 
Run Code Online (Sandbox Code Playgroud)

当我解释这个查询时,它绝对没问题。

mysql> explain select off.*,translated_title,translated_description from ephpb2b_products off  USE INDEX(id_viewed)  INNER JOIN ephpb2b_members mem ON …
Run Code Online (Sandbox Code Playgroud)

mysql performance explain slow-log

6
推荐指数
2
解决办法
7703
查看次数

在 pt-query-digest 输出之上提交

我一直在优化我的 MySQL 服务器,在调整了一些查询之后,我最终在 pt-query-digest 输出顶部得到了 COMMIT 项,如下面的摘录所示:

# 322s user time, 770ms system time, 71.75M rss, 223.13M vsz
# Current date: Sat Oct  1 11:12:58 2016
# Hostname: XXXX
# Files: /home/tools/Slow10.log
# Overall: 1.08M total, 1.47k unique, 61.74 QPS, 0.17x concurrency _______
# Time range: 2016-10-01 06:15:09 to 11:06:35
# Attribute          total     min     max     avg     95%  stddev  median
# ============     ======= ======= ======= ======= ======= ======= =======
# Exec time          2913s     1us     14s     3ms    15ms    27ms   194us
# Lock …
Run Code Online (Sandbox Code Playgroud)

mysql performance percona mysql-5.5 percona-tools slow-log

6
推荐指数
1
解决办法
858
查看次数

从日志文件中重放(重新执行)MySQL SELECT 查询

MySQL 基准测试

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

为了对新系统进行基准测试,我最好使用慢日志或一般日志收集所有查询,然后将查询重播到新系统。

应该可以过滤查询,例如我只想重放 SELECT 语句。我想知道是否存在积极维护的程序或最佳实践来实现预热或基准测试功能。

要求

  • 重放(重新执行)从正在运行的 MySQL 实例中收集的真实查询
  • 按语句类型(INSERT、UPDATE、DELETE)和 DML 过滤语句
  • 获取统计信息(在迁移之前、之后查询运行了多长时间等)

问题:工具已过时

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

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

潜在的解决方案

使用 Debian Wheezy docker 容器可以轻松访问提供 pt-log-player 的旧 Percona Toolkit 版本。运行容器docker run -it --network="host" --name wheezy debian:wheezy /bin/bash并在其中安装旧版本的工作原理:

apt-get update
apt-get install percona-toolkit mysql-client
Run Code Online (Sandbox Code Playgroud)

我也尝试过 percona-playback,但它似乎也没有得到非常积极的维护。这将是一个很棒的工具,但它几乎没有记录,而且我找不到仅过滤 SELECT 语句的方法,因为我不想运行其他 DML 语句。我只看到 Percona Server 提供了一个启用只读选项的标志,但这不适用于 vanilla MySQL 或 AWS RDS。

但是,我更愿意使用不依赖于未维护工具的程序。

想象的工作流程

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

有什么工具可以实现这一目标吗?过滤慢查询日志的最佳方法是什么?如何理智地重播查询?

mysql performance benchmark logs slow-log

6
推荐指数
1
解决办法
1325
查看次数

如何在 MariaDB my.cnf 中设置慢查询日志?

这应该很容易,但是当我放上这些行时:

log_slow_queries = 1
long_query_time = 1
log-slow-queries = /var/log/mysql/slow_query.log
log_queries_not_using_indexes
Run Code Online (Sandbox Code Playgroud)

在 中[mysqld],MariaDB 无法重新启动。

我查看了文档,但无法弄清楚我的配置有什么问题。

另外,我已将文件权限设置为 /var/log/mysql/slow_query.log

# ls -al /var/log/mysql/slow_query.log 
-rw-rw-r-- 1 mysql mysql 744682 Dec  4 23:46 /var/log/mysql/slow_query.log
Run Code Online (Sandbox Code Playgroud)

但是,我可以在命令行中设置参数:

SET GLOBAL slow_query_log_file = '/var/log/mysql/slow_query.log';
SET GLOBAL LONG_QUERY_TIME = 1;
SET GLOBAL slow_query_log = 'ON';
Run Code Online (Sandbox Code Playgroud)

并看到它们已设置:

+---------------------+--------------------------------------------------------------------------------------------------------------+
| Variable_name       | Value                                                                                                        |
+---------------------+--------------------------------------------------------------------------------------------------------------+
| log_slow_filter     | admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk |
| log_slow_rate_limit | 1                                                                                                            |
| log_slow_verbosity  |                                                                                                              |
| slow_launch_time    | 2                                                                                                            |
| slow_query_log      | …
Run Code Online (Sandbox Code Playgroud)

mysql mariadb performance my.cnf mysql-5.6 slow-log

5
推荐指数
1
解决办法
1万
查看次数

为什么这个简单的查询需要超过 1 秒?

该表有大约 1700 万行,是 MyISAM。

select DateModified,PELTM,PSLTM 
from financial_key_ratios 
where SecurityId = 4525 
  and DateModified >= '2015-01-07';
Run Code Online (Sandbox Code Playgroud)

这个简单的查询似乎需要超过 1 秒的时间。

索引似乎没问题。这是解释的输出:

 explain 
 select DateModified,PELTM,PSLTM 
 from financial_key_ratios 
 where SecurityId = 4525 
   and DateModified >= '2015-01-07';
+----+-------------+----------------------+-------+------------------------------------------------+------------+---------+------+------+-------------+
| id | select_type | table                | type  | possible_keys                                  | key        | key_len | ref  | rows | Extra       |
+----+-------------+----------------------+-------+------------------------------------------------+------------+---------+------+------+-------------+
|  1 | SIMPLE      | financial_key_ratios | range | SecurityId,secid,DateModified_index,secid_date | secid_date | 7       | NULL |  156 | Using where |
+----+-------------+----------------------+-------+------------------------------------------------+------------+---------+------+------+-------------+
Run Code Online (Sandbox Code Playgroud)

我们可能做错了什么? …

mysql performance slow-log

5
推荐指数
1
解决办法
1614
查看次数

Anemometer - 关于分析慢日志的查询

我是 SQL 风速计的新手。我需要知道这个工具是否能够查询源数据库并实时分析慢查询日志?

mysql performance tools anemometer slow-log

5
推荐指数
1
解决办法
308
查看次数

OLTP 系统上的 writelog 等待时间长,SSD 存储速度快,日志刷新慢

我们最近从 SQL Server 2008 升级到新服务器并升级到 sql server 2016 (SP1 CU3)

新服务器硬件 hp proliant 580G8,4 插槽英特尔至强 E7 处理器,总共 60 个内核,640GB 内存,8 个英特尔 SSD S3700 Raid 10,本地

环境是一个繁忙的 OLTP 系统,每秒大约有 3K 批请求,主要是插入和较小程度的更新。作为 OLTP 系统,主要有 1 个插入/事务,因此有很多事务提交。有一些用于系统目的的报告查询(队列阅读器、监控等)

问题是日志刷新性能很慢,我们得到了 writelog 等待。我已经测试了 I/O,它可以在 4k 随机写入测试中管理超过 100K iops/sec,顺序写入高达 2500MB/sec

数据库兼容级别 = 130(sql server 2016)

间接检查点 = on,

甚低频计数 = 80-120

处理器 CPU 使用率为 3%-8%,平均为 5%,运行日志备份时最大低于 10%(压缩备份)总信号时间/总等待时间 = 6% - 94% 资源等待时间

内存 PLE 将每秒滴答一次,目前代表 584000 秒,可观察到的页面交换很少(页/秒)

这是我发现的真正问题

“日志刷新/秒”= 1000-2000/秒

“日志刷新等待时间”= 1000-4000 毫秒/秒

“日志刷新写入时间”= 0-1 毫秒/秒,峰值为 10-15 …

performance sql-server transaction-log sql-server-2016 slow-log

5
推荐指数
1
解决办法
2156
查看次数

更新会话表很慢

我在 Web 服务器上有许多带有会话表的网站,这些被 Joomla CMS 和 Symfony 框架系统使用。当slow_query_log=0.6 时,会话表的更新查询会定期出现在慢速日志中。

Joomla 会话表定义是

    CREATE TABLE IF NOT EXISTS `jos_session` (
      `username` varchar(150) DEFAULT '',
      `time` varchar(14) DEFAULT '',
      `session_id` varchar(200) NOT NULL DEFAULT '0',
      `guest` tinyint(4) DEFAULT '1',
      `userid` int(11) DEFAULT '0',
      `usertype` varchar(50) DEFAULT '',
      `gid` tinyint(3) unsigned NOT NULL DEFAULT '0',
      `client_id` tinyint(3) unsigned NOT NULL DEFAULT '0',
      `data` longtext,
      PRIMARY KEY (`session_id`(64)),
      KEY `whosonline` (`guest`,`usertype`),
      KEY `userid` (`userid`),
      KEY `time` (`time`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

我试过将存储引擎更改为 InnoDB 没有效果,我试过优化表并删除所有索引,但主要是。此表中有记录有存储空间

Data …
Run Code Online (Sandbox Code Playgroud)

mysql performance update slow-log

4
推荐指数
1
解决办法
3093
查看次数