gpt4 book ai didi

mysql - 在基本的 MySQL 项目中使用哪种隔离级别?

转载 作者:行者123 更新时间:2023-11-29 01:05:42 25 4
gpt4 key购买 nike

好吧,我接到了一个任务 [迷你项目],其中最重要的问题之一是数据库一致性。该项目是一个 Web 应用程序,允许多个用户访问和使用它。我可以期望将并发查询和更新请求放入一小组表中,其中一些表相互连接(使用 FOREIGN KEYS)。

为了尽可能保持数据库的一致性,我们被建议使用隔离级别。在阅读了一些(也许还不够?)关于它们的内容之后,我认为对我来说最有用的是 READ COMMITTED 和 SERIALIZABLE。

我可以将查询分为三种:

  1. 获取查询
  2. 更新查询
  3. 组合

对于第一个,我当然需要数据是一致的,我不想呈现脏数据,或未提交的数据等。因此,我想使用 READ COMMITTED 来处理这些查询。对于更新查询,我认为使用 SERIALIZABLE 将是最好的选择,但在阅读了一下之后,我发现自己迷路了。在组合中,我可能必须从数据库中读取,并决定是否需要/可以更新,这 2-3 次调用将在同一事务下进行。

想就在每个查询选项中使用哪种隔离级别寻求一些建议。我什至应该为每种类型考虑不同的隔离级别吗?还是只坚持一个?

我正在使用 MySQL 5.1.53,以及 MySQL JDBC 3.1.14 驱动程序(要求...没有选择 JDBC 版本)

非常感谢您的见解!

编辑:

我决定使用REPEATABLE READ,这似乎是默认级别。我不确定这样做是否正确,但我想 REPEATABLE READ 以及 LOCK IN SHARE MODEFOR UPDATE 到查询应该可以正常工作...

大家怎么看?

最佳答案

我会建议 READ COMMITTED。能够在提交后立即看到其他 session 提交的数据似乎很自然。

不清楚为什么 MySQL 有默认的 REPEATABLE READ。

关于mysql - 在基本的 MySQL 项目中使用哪种隔离级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7455799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com