有没有办法将整个 MySQL 数据库加载到 RAM 中,尤其是在 EC2 服务器上?
- 数据库相当小(约 500 兆字节)
- 我有足够的内存
- 速度问题至关重要——结果查询用于提供动态网页。
谢谢,
亚当
答案1
当然可以将索引加载到缓存中;如果您有经常查询的小型 ISAM 表,MySQL 可能也会将这些表加载到缓存中。下面是一份很好的性能 Wiki 文章关于 MySQL 调优。
答案2
您可以将数据库存储在 RAM 磁盘上,例如ramfs
。这可能会给数据带来风险,具体取决于实现方式,因此您需要进行设计以弥补这一点。一个潜在的解决方案是让只读从属服务器复制到 RAM 磁盘,并且那里的数据可能是可丢弃的。
MySQL Clustering(NDB 引擎)旨在将数据存储在内存中。但是,MySQL Clustering 最适合通过简单查询访问的小型数据集。
目前最受欢迎的解决方案是 memcached,但这需要应用程序架构来支持该技术。
这是一个相当大的问题。《高性能 MySQL》是一本涵盖高级 MySQL 实现的精彩书籍。