insert into 大量数据_insert select 太慢

insert into 大量数据_insert select 太慢问题: MySQL 一次 insert 刷几次盘? 实验: 工具:pt-tools 先检查各个刷盘参数 2. 开启 pt-tools! 3. 在 MySQL 中,任意表插入一行 4. 观察 pt-i…

第01问:MySQL 一次 insert 刷几次盘?

问题:

MySQL 一次 insert 刷几次盘?

实验:

工具:pt-tools

  1. 先检查各个刷盘参数

insert into 大量数据_insert select 太慢

2. 开启 pt-tools!

insert into 大量数据_insert select 太慢

3. 在 MySQL 中,任意表插入一行

insert into 大量数据_insert select 太慢

4. 观察 pt-ioprofile 的结果

insert into 大量数据_insert select 太慢

我们用 pt-ioprofile 跟踪 MySQL IO 的系统调用,统计了次数。可以看到本次实验中:

  1. MySQL 对 redo log 进行了 3 次刷盘(fsync);
  2. MySQL 对 binlog 进行了 1 次刷盘(fdatasync);
  3. 对 redo log 和 binlog 的刷盘的方法是不同的。

结果:

可以看到本次试验进行了一次 insert,会对 redo log 进行 3 次刷盘,对 binlog 进行 1 次刷盘。 但是需要注意以下事项:

  1. 进行相同试验,会观察到不同结果:MySQL 有多个逻辑会引发刷盘,比如 InnoDB 主线程的刷脏等;
  2. 每次 fsync,如果没有数据需要刷盘,不会对磁盘造成压力。对于 3 次刷盘不必过分担心;
  3. 以后我们会进行试验,分析到底是什么导致了刷盘。

insert into 大量数据_insert select 太慢

pt-ioprofile 是 pt-tools 中的一款性能分析工具,可以监听 MySQL 进程,输出 IO 操作的次数/总时间/平均时间。 其原理如下:pt-ioprofile 用 strace 监听 MySQL 的系统调用,筛选其中与 IO 相关的系统调用,进行统计。同时 pt-ioprofile 也获取 lsof 的输出,将其与 strace 的结果匹配,得知系统调用操作了哪个 MySQL 文件。

insert into 大量数据_insert select 太慢


insert into 大量数据_insert select 太慢

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9776.html

(0)
上一篇 2023-02-01
下一篇 2023-02-01

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注