我想知道使用 tmpfs 是否能提高 MySQL 性能,以及能提高多少,以及如何做到这一点?我的猜测是这样做mount -t tmpfs -o size=256M /path/to/mysql/data/DatabaseName
,并正常使用数据库,但也许我错了(我只使用 MyISAM 表)。
每小时在 tmpfs 之间进行 rsync 是否会/path/to/mysql/data/DatabaseName
影响/path/to/mysql/data/DatabaseName_backup
性能?如果是这样,我应该如何备份 tmpfs 数据库?
那么,这是做事的好方法吗?有没有更好的方法,或者我正在浪费时间?
答案1
我回答过类似的问题这里当有人问如何将 MySQL 数据库加载到内存时。MySQL 中有一个原生 ENGINE 以及其他潜在解决方案,它们在大多数情况下都更好用。
对于 MyISAM 表,您提出的解决方案将是可行的。
rsync 不一定会降低性能,但如果您的系统资源真的很低,则可能会降低性能,因为高 I/O 利用率会影响整个系统性能。在大多数情况下,我认为不会,但唯一可以确定的方法是进行测试。
ramdisk 解决方案对我来说似乎有风险。如果断电,数据可能会丢失,因为您的 rsync 不是实时的。您可以将数据库复制到从属服务器,该从属服务器可以存储在磁盘上。在启动实例之前,ramdisk 服务器上的 MySQL 启动可以从该主机 scp 到 ramdisk。
如果您的 MySQL 实例没有经过很好的优化,您会注意到性能大幅提升。如果经过很好的优化,我怀疑性能提升会更少。唯一可以确定的方法是使用类似超级打击,MySQL 基准, 和系统工作台量化绩效。
祝你好运。