繁体   English   中英

MySQL 的缓冲池扩展

[英]Buffer Pool Extension for MySQL

主机上的主要 memory 受到限制,因此 mysql 引擎的缓冲池大小。 想知道MYSQL是否有任何已知的解决方案,它允许将缓冲池扩展到数据库引擎的非易失性随机访问 memory(即固态驱动器或 EBS 卷,在 AWS infra 的情况下)扩展。

[编辑] 我能够找到 sql 服务器的非常旧的文档,但在 mysql 上没有找到任何内容。 我正在寻找 mysql 引擎/innodb 的任何现有解决方案或如何添加该功能的良好参考点。

参考

SQL 服务器文档

MySQL 没有 Microsoft SQL 服务器缓冲池扩展之类的功能。

大多数操作系统允许通过磁盘存储扩展 RAM。 它被称为交换空间。 这个想法是,如果进程使用的虚拟 memory 多于系统物理 RAM 的容量,则可以使用一些存储空间。

问题是,即使是最好的 SSD 驱动器也比 RAM 慢 10,000 倍。 如果你依靠 SSD 上的交换空间来补充 MySQL 的缓冲池,那么 MySQL 会慢到无法使用。

At my work, when we had swap space configured on Linux servers, and MySQL would overallocate virtual memory and use some of the swap space, it caused the whole server to become so slow from frequent disk access that we almost could not ssh to the server关闭它。 所以我们禁用了交换空间。 完全失败总比一蹶不振而无法恢复要好。

那是在我们数据中心的物理服务器上直接连接的 SSD 存储。 对于 AWS EBS 卷,情况会更糟,因为 EBS 是具有更高延迟的网络附加存储。

您不一定需要与整个数据集大小一样多的缓冲池。 默认情况下,我们为缓冲池与存储选择 1:10 的比例。 例如,10GB 缓冲池通常足以容纳 100GB 磁盘上的数据。 至少作为默认的起点。 有些工作负载需要更多的缓冲池,所以我们可能会在以后调整它。

如果您的 MySQL 实例需要更多缓冲池,那么您确实需要获得具有更多物理 RAM 的服务器。 没有替代品有效。

这将花费更多来获得具有更多 RAM 的服务器。

如果应用程序没有产生足够的商业价值来支付它所需的服务器规模,那么它就不是一个可行的应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM