【问题标题】:Inserting data from multiple programs into one table is okay?将多个程序的数据插入一张表可以吗?
【发布时间】:2015-02-07 09:27:56
【问题描述】:

我有 9 个 python 程序正在运行,它在 9 个不同的表中插入数据。所有程序同时运行。所有表都有相同的结构

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

【问题讨论】:

  • 包含相关代码?
  • 这样做是可以的。事实上,数据库在这种情况下表现出色(称为并发)。您不会丢失数据,因为程序要求 MySQL“同时”插入数据。数据(通常)丢失的原因是硬盘无法将数据写入永久存储。 TL;DR:没关系。

标签: mysql database sql-insert


【解决方案1】:

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

如果大量程序正在插入数据而其他程序同时尝试检索数据,您可能需要阅读concurrencytransactions。并发的 INSERT 和 SELECT 操作可能会产生不太直观的结果。实际上没有数据丢失,但目前看起来是这样。

如果您只是插入许多行,那么并发插入根本不会出现数据完整性问题。 MySQL 服务器旨在正确解决这些问题。

【讨论】:

  • 我没有身份证。只是它们就像 22 列,并且运行网络报废程序来提取和插入数据。在这种情况下可以这样做吗?
  • 在这种情况下,您很可能不会遇到任何问题。查看我的编辑。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    相关资源
    最近更新 更多