我们正在使用 MySQL,并且有一个大约 110 万条记录的 InnoDB 表,其中整个表必须每天两次用 CSV 中的数据替换。
到目前为止,我一直在做的是截断表格,然后使用 mysqlimport 每天两次从新鲜的 CSV 重新填充表格。这导致大约 160 秒的停机时间,我最初被告知这很好,但现在情况不再如此。
我能想到的唯一方法是拥有一个临时表和一个生产表。实时查询将投入生产,当我需要重新填充数据库时,我将截断 staging,然后 mysql 将 CSV 导入其中,完成后我将交换名称,以便 staging 拥有旧数据库,生产将包含新导入的 CSV。我想我需要一个中间名称,比如 production 变成 production2,staging 变成 production,然后 production2 变成 staging。
有没有人有替代解决方案?表需要尽快导入,这就是我使用 mysqlimport 的原因,而且停机时间必须极短。