我想根据innodb_buffer_pool_size来标注RAM的尺寸。但我发现的只是innodb_buffer_pool_size对RAM的依赖。
你能告诉我innodb_buffer_pool_size上的哪些参数取决于吗?查询数?交易数量?
我想找出计算取决于innodb_buffer_pool_size的RAM的公式。
你可以帮我吗?非常感谢您的建议!
大小innodb_buffer_pool_size
:
- 如果所有查询/事务都涉及小表或小部分或大表,则微小buffer_pool就足够了。
- 如果你有UUID,你需要一个大的缓冲池——因为你不能通过UUIDs只接触表/索引的"微小"部分;它们太"随机"了。
- 大于 70% 的 RAM 是危险的,因为它可能导致交换,这对性能来说是可怕的。
- 这是可用RAM的70% - 需要为操作系统,代码,其他缓存等留出空间。
- 更改 RAM 时,请更改buffer_pool_size。 或者反过来。
- 越大越好。
- 比所有数据和索引的总大小大得多是不必要的(浪费 RAM(。
- 太小会导致涉及InnoDB的大多数操作效率低下。
- buffer_pool是缓存。 计算机科学讨论了这意味着什么以及后果是什么。
因此,简单的公式"将其设置为可用RAM的70%"。
SHOW GLOBAL STATUS
中有多种指标可以说明buffer_pool是否"足够大"。 但它们只有在设置大小然后运行一段时间后才有用。 他们只说"有很多读/写",他们没有说是否或改变多少大小。
如果您希望我分析状态(至少在它上升一天后(,请提供
- 多少内存
SHOW VARIABLES;
SHOW GLOBAL STATUS;
我会检查这些公式,再加上几百个其他公式。