mysql - 有没有一种好的方法可以将其存储在 RAM 中

mysql - 有没有一种好的方法可以将其存储在 RAM 中

我正在想办法让 mysql 运行得更快。有没有一种行之有效的方法可以将其存储在 RAM 中,以使其运行得更快?

答案1

记忆存储引擎?

另一个选择是创建一个虚拟硬盘并在其中使用 MyISAM 或 INNODB 表。不过,我认为使用 MEMORY 存储引擎的性能会更好,因为它从一开始就被设计为存储在内存中,而其他表类型则假设它们存储在磁盘上。

答案2

首先,帮自己一个忙,对 MEMORY 引擎的建议持保留态度。

当然,除非您不需要以下任何一项:

  • 脉动循环控制电路
  • 交易
  • 多线程访问
  • 聚集索引
  • 外键支持
  • 不仅仅是偶尔的 INSERT/UPDATE
  • 您的数据

如果你不需要任何那么您不应该使用 MySQL。请使用简单的键值存储,例如 memcached。

如果你需要任何在这些中(提示:你需要),那么使用 InnoDB,尽可能多地使用 RAM,并正确配置innodb_buffer_pool_size。MySQL 性能博客上有一篇关于配置 innodb_buffer_pool_size. 简而言之 - 您需要足够的 RAM 来将整个 DB 表空间和索引放入 RAM,并将其设置innodb_buffer_pool_size为专用 MySQL 服务器的总系统 RAM 的 70-80%。

答案3

RAM SAN 非常昂贵,但 IO 令人难以置信。RAMdisk 是一个非常糟糕的主意,因为一旦发生系统断电或致命系统错误,RAMdisk 就会消失,就像它在 RAM 中一样。

答案4

按照 ErikA 的建议使用 MEMORY 存储引擎。但请确保您还优化了所有查询缓存、线程缓存和缓冲区设置。 mysqltuner.pl是一个很好的起点。

相关内容