【发布时间】:2010-02-07 14:50:59
【问题描述】:
我正在运行每 4 小时更新一次的 mySql 服务器。 同时可以检索数据。
mySql 是否处理这种正在更新数据库的场景 并收到用户的查询?
或者我应该处理这种情况? 是否可以在更新发生之前创建数据库的快照 并查询这个数据库?
谢谢
【问题讨论】:
标签: mysql concurrency
我正在运行每 4 小时更新一次的 mySql 服务器。 同时可以检索数据。
mySql 是否处理这种正在更新数据库的场景 并收到用户的查询?
或者我应该处理这种情况? 是否可以在更新发生之前创建数据库的快照 并查询这个数据库?
谢谢
【问题讨论】:
标签: mysql concurrency
如果您担心并发写入的处理方式,那是一回事,但您可以安全地从另一个线程正在更新的 MySQL 数据库中读取数据,而不必担心数据损坏。
当然,如果写入线程正在执行需要原子的多次写入(即全部或无),请确保他正在使用事务。
【讨论】:
您可以使用事务和/或锁定来确保每个用户看到一致的视图(即完全更新或根本不更新)。数据库引擎本身非常适合该场景。如果您不担心读者在更新运行的确切时间看到什么,则无需执行任何操作。
【讨论】:
考虑到我的情况,我认为无需采取进一步行动。 如果写入发生在读取之前,用户将获得最新的数据 否则没有,他会等待下一个查询。
这符合我的要求。
谢谢大家
【讨论】: