我正在想办法让 mysql 运行得更快。有没有一种行之有效的方法可以将其存储在 RAM 中,以使其运行得更快?
答案1
答案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是一个很好的起点。