2014-12-09 89 views
2

我有9个python程序正在运行,并在9个不同的表中插入数据。所有的程序都在同时运行。所有表格具有相同的结构从多个程序插入数据到一个表是好的?

我的问题:是否可以将数据插入一个表中同时运行多个程序并将表插入一个表中。我会以这种方式丢失一些数据吗?

+0

包括相关代码? – HaveNoDisplayName 2014-12-09 13:12:46

+2

可以这样做。实际上,数据库在这种情况下非常出色(称为并发性)。你不会丢失数据,因为程序要求MySQL“同时”插入数据。数据(通常)丢失的原因是硬盘无法将数据写入永久存储。 TL; DR:没关系。 – 2014-12-09 13:21:11

回答

2

是的,你可以有很多的客户端程序插入数据。在保证ACID (atomicity, consistency, isolation, and durability)的同时这样做是关系数据库的核心目的。

如果很多程序正在插入数据,而其他程序正试图同时检索它,您可能需要阅读concurrencytransactions。并发INSERT和SELECT操作可能会产生不太直观的结果。实际上没有数据丢失,但现在似乎是这样。

如果您只插入很多行,那么在并发插入时就没有数据完整性问题。 MySQL服务器旨在正确解决这些问题。

+0

我没有IDS。只是他们就像22列,并且有网络报废程序运行提取和插入数据。在这种情况下这样做很好吗? – Newbie 2014-12-09 13:34:31

+0

在这种情况下,您很可能没有问题。看我的编辑。 – 2014-12-09 13:48:08

1

如果你只是插入数据,你不会失去任何人,但如果所有程序尝试在同一时间插入,你可能会有一些延迟。