如何将数百万行添加到现场制作 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"
一般来说,不会。它不需要等待。这确实取决于您是否在同一个键空间内工作,以及您在哪个隔离级别内工作。
我希望将大约 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"
一般来说,不会。它不需要等待。这确实取决于您是否在同一个键空间内工作,以及您在哪个隔离级别内工作。