【问题标题】:MySQL InnoDB: what are the units for "reads/s"?MySQL InnoDB:“读取/秒”的单位是什么?
【发布时间】:2010-10-12 03:03:28
【问题描述】:

在 MySQL 中,我有时会键入“show innodb status”来查看长时间运行的查询正在执行某项操作。在“ROW OPERATIONS”下,底部有一行:

2000.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 2000.00 reads/s

这些单位是什么?记录? InnoDB 页面?操作系统磁盘页? (它们是一样的吗?)

【问题讨论】:

    标签: mysql performance innodb


    【解决方案1】:

    这是 SHOW INNODB STATUS 顶部显示的运行报告的逻辑行读取数*的平均值。

    所以它与 pages 部分(包含物理页面操作)不同。

    这是一个很好的建模性能指标,因为它可以显示应用程序对数据库的一般需求。如果需求没有增加,但是你的性能变差了,看看你的数据集是否增加了等等。也许这会导致更多的物理 IO?

    [*] 逻辑行读取可能仍需要读取许多页,例如,如果它必须从撤消中找到旧版本 (MVCC)。

    【讨论】:

    • 谢谢!我想我感兴趣的一件事是知道我是否可以使用它来确定某些东西要运行多长时间。假设我知道我的程序将插入 2,000,000 条新记录,并且show innodb status 表示2000.00 inserts/s(平均而言)——这是否表明总共需要大约 2,000,000/2000 = 1000 秒(17 分钟)?如果它是“逻辑行读取”,则表明它是,这很好。
    • 我猜你可以用它来模拟进度。因为构建唯一索引不能使用插入缓冲区,请注意可能存在一些偏差,索引页面需要进行物理 IO。表格插入到更大的表格中也会变得更慢 - 因此,仅仅因为某些内容已完成 50%,并不意味着它需要到目前为止才能完成。
    猜你喜欢
    • 2011-04-18
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 2016-01-12
    • 1970-01-01
    相关资源
    最近更新 更多