首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MySQL隔离设置为“读取未提交”(脏读)是否安全?即使是复制?

将MySQL隔离设置为“读取未提交”(脏读)是否安全?即使是复制?
EN

Server Fault用户
提问于 2010-01-07 23:53:23
回答 2查看 1.3K关注 0票数 1

我正在开发一个具有典型CRUD web使用模式的网站:类似于用户创建/更新内容以及其他用户阅读内容的博客或论坛。

在本例中,将数据库的隔离级别设置为“读取未提交”(脏读)似乎是可以的。我对“读未提交”的一般缺点的理解是,读取器可能读取未提交的数据,这些数据稍后将被回滚。

在CRUD博客/论坛使用模式中,会有任何回滚吗?即使存在,读取未提交的数据有什么重大问题吗?

现在我不使用任何复制,但是将来如果我想使用复制(基于行的,而不是基于语句的),“未提交的读”隔离级别会阻止我这样做吗?

你认为如何?有人试过在RDBMS上使用“未提交的读”吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2010-01-08 18:02:21

可以安全地使用基于行的复制,但不能使用基于语句的复制。

票数 2
EN

Server Fault用户

发布于 2011-02-28 14:54:57

READ未提交的问题并不是可能出现回滚--至少,这不是主要问题。最主要的问题是您可能会得到部分数据。例如,使用一个博客,假设您有一个汇总表,其中包含存在的帖子数量。您还拥有一张每张帖子都有一行的桌子。很明显,我在这里做东西--这不是你应该拥有的结构。

无论如何,在一个线程中启动事务,将汇总表中的帖子数量从4更新到5,插入一个新的post行,并提交事务。效果很好。

在另一个线程中,您读取文章的数量,并将博客显示在一个屏幕上。此查询(非常快)发生在UPDATE语句和INSERT语句之间。文章的数量显示为"5“,如果你幸运的话,你有4篇博客文章。如果您在编写代码时运气不佳,并且实际上使用了摘要号,而不是仅仅显示它,则会出现数组溢出情况.

在大多数情况下,读提交是您想要提供适当的一致性。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/100664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档