如何将数百万行添加到现场制作 mysql table?

How do I add millions of rows to a live production mysql table?

我希望将大约 700 万行添加到每秒写入 1-2 次的实时生产数据库 table。我可以在不锁定数据库进行写入的情况下执行此操作吗?我认为是因为 table 使用 InnoDB?

是否还有其他考虑,还是我只写插入语句然后让它撕掉?

如果您使用的是 InnoDB,则无需执行任何特殊操作。 只是 运行 你的插入。 InnoDB 在这些情况下使用行级锁定,它不会锁定整个 table.

当然,由于并行工作,您的表现可能仍会受到影响。

回答你的另一个问题:

"One confusion about transactions: If I am working on transaction A and a stack of writes B come in, do those writes get processed after I commit my transaction"

一般来说,不会。它不需要等待。这确实取决于您是否在同一个键空间内工作,以及您在哪个隔离级别内工作。