【问题标题】:mysql innodb buffer pool size which dependenciesmysql innodb 缓冲池大小有哪些依赖
【发布时间】:2017-06-30 13:28:39
【问题描述】:

我想根据 innodb_buffer_pool_size 确定 RAM 的大小。但我发现的只是 innodb_buffer_pool_size 对 RAM 的依赖。

你能告诉我 innodb_buffer_pool_size 上的哪些参数取决于?查询次数?交易次数?

我想找出根据 innodb_buffer_pool_size 计算 RAM 的公式。

你能帮帮我吗?非常感谢您的建议!

【问题讨论】:

  • 我应该根据哪些参数选择 innodb_buffer_pool_size 的值?

标签: mysql size buffer innodb pool


【解决方案1】:

尺码innodb_buffer_pool_size:

  • 如果所有查询/事务都涉及小表小部分或大表,那么一个小的 buffer_pool 就足够了。
  • 如果您有 UUID,则需要一个大缓冲池——因为您不能通过 UUID 只触及表/索引的“微小”部分;它们太“随机”了。
  • 超过 70% 的 RAM 很危险,因为它可能导致交换,这对性能可怕
  • 这是可用 RAM 的 70% - 需要为操作系统、代码、其他缓存等留出空间。
  • 更改 RAM 时,请更改 buffer_pool_size。或者反过来。
  • 越大越好。
  • 不需要比所有数据和索引的总大小大得多(浪费 RAM)。
  • 太小会导致大多数涉及 InnoDB 的操作效率低下。
  • buffer_pool 是一个缓存。计算机科学讨论了这意味着什么以及后果是什么。

因此,简单的公式“将其设置为 可用 RAM 的 70%”。

SHOW GLOBAL STATUS 中有各种指标可以说明 buffer_pool 是否“足够大”。但是它们只有在设置好大小,然后运行一段时间后才有用。他们只说“有很多读/写”,他们没有说是否改变大小或改变多少。

如果您希望我分析状态(至少在一天之后),请提供

  • 多少内存
  • SHOW VARIABLES;
  • SHOW GLOBAL STATUS;

我会检查这些公式以及其他数百个公式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多