我有一个包含天气信息的大型MySQL数据库。数据库大约有350万行,大小为486 MB。
我每隔6小时刷新一次这个数据,以我可以导入的mysql转储文件的形式。导入数据需要2分钟以上,创建索引的时间可能相似。
有关如何在保持数据库可用且不失去响应能力的同时导入此数据的任何想法?我的第一个想法是两个在同一个MySQL实例中有两个数据库。我将运行DB1并将数据加载到DB2然后切换。但是,我担心加载过程会使DB1无响应(或显着慢)。
所以,我的下一个想法是两个在不同的端口上运行两个不同的MySQL实例。当数据库实例1正在提供查询时,可以使用下一个数据集加载数据库实例2。然后在下一个查询中,代码切换到DB2。
这似乎对我有用,但我想和一些曾经尝过类似事情的人核实一下,看看是否有任何“遗骸”我不知道。
思想?
答案 0 :(得分:1)
每次导入完成后,有两个数据库并在它们之间切换。
在一个数据库上加载不应该使另一个数据库无响应。 486MB并不是太大而不能在内存中放置几次 - 取决于我猜你是否在一个小型虚拟服务器中。
但即便如此,一台服务器上的两个MySQL实例在一个实例上的性能不应超过两个数据库,除了两个实例实际上可能占用更多内存并且设置起来更复杂。