2014-12-09 84 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

如果你只是插入數據,你不會失去任何人,但如果所有程序嘗試在同一時間插入,你可能會有一些延遲。