我们正在使用MySQL作为数据库运行一个金融应用程序。
出于性能上的考虑,我们使用内存表来处理几个活表,这些表中的数据被填充了几千秒。
为了确保所有场景(计划和非计划中断)中的数据一致性,我们需要确保内存表中的数据总是持久化的,因为我们计划实现关机挂钩,其中在任何关机的情况下,数据将写入普通表并在启动过程中恢复。
不幸的是,我没有办法做到这一点。
如有任何建议,将不胜感激。
我们使用的是MySQL ver 5.7
发布于 2020-04-11 03:56:21
甚至不要尝试。
InnoDB背后有多年的优化。由于其集成日志,即使在未计划的电源故障情况下,它也会持续到磁盘上。
此外,由于MEMORY使用表锁(而不是InnoDB的行锁),有一些基准测试表明InnoDB比内存更快。在某些情况下,内存比InnoDB更快。但是,在您的较高的写入率和JOINs之间,InnoDB很可能对这两个任务之间的干扰较小。
如果您想要完全持久化,则需要每秒写入磁盘500次。你在用SSD吗?突袭?普通的硬盘不能以每秒500次的速度运行。如果你有一个足够快的驱动器,你可以让InnoDB照顾你的一切。
InnoDB对电源故障的自动保存和恢复非常可能更快,对您来说更少编程工作。
https://dba.stackexchange.com/questions/264066
复制相似问题