我最近将我的服务器从 2 GB RAM 的 Microsoft Small Business Server 2003 升级到运行 64 GB RAM 的 Microsoft Windows Server 2016 的全新服务器。我将服务器上的 MySQL 配置为使用“所有可用内存”,因为这是该服务器的唯一作用。单个 MySQL 数据库的总大小为 20 GB,约占可用 RAM 的三分之一。
我的问题是:新服务器是否能够从 SSD 驱动器读取整个 20 GB 数据库并将其加载到 64 GB RAM 中?
我预计从 2 GB 到 64 GB 的 RAM 升级将提高运行数据库查询的速度,但我很好奇我应该期望看到什么类型的改进。
答案1
如果你的工作以阅读为主,和如果配置正确(即:合适innodb_buffer_pool_size
),和如果您受到磁盘限制,那么您的性能可能会得到极大的提升。
但有一个问题:要将数据放入内存,您需要第一的需要访问它们。这意味着第一次访问行/记录会相对较慢,但后续访问会快得多。要绕过此阶段,您可以使用一些夜间 SELECT 查询预加载所有数据(请看这里举个例子)。