开发者社区> 问答> 正文

MySQL事务的一致性怎么理解?

本问题来自云栖社区【阿里Java技术进阶2群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

展开
收起
李博 bluemind 2019-07-02 13:57:12 9965 0
9 条回答
写回答
取消 提交回答
  • 推荐回答

    参考ACID:Consistency(一致性):指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。

    例如:

    对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNTS表中Tom和Jack的存款总额为2000元,不应出现多或少.保证数据完全一致.

    2019-08-30 09:25:51
    赞同 展开评论 打赏
  • 精于基础,广于工具,熟于业务。
    推荐回答

     一致性是指数据处于一种语义上的有意义且正确的状态。一致性是对数据可见性的约束,保证在一个事务中的多次操作的数据中间状态对其他事务不可见的。因为这些中间状态,是一个过渡状态,与事务的开始状态和事务的结束状态是不一致的。   举个例子,张三给李四转账100元。事务要做的是从张三账户上减掉100元,李四账户上加上100元。一致性的含义是其他事务要么看到张三还没有给李四转账的状态,要么张三已经成功转账给李四的状态,而对于张三少了100元,李四还没加上100元这个中间状态是不可见的。

    2019-09-02 09:36:35
    赞同 展开评论 打赏
  • 一致性不仅仅是mysql的,是事务的特性之一 个人理解指的是对关联数据的操作应该在每份数据里都保证生效,比如A、B两个表,A.column1=B.column2,那么如果更新了A.column1,则必须同步更新B.column2

    2020-03-25 21:00:13
    赞同 展开评论 打赏
  • 一致性:事务开始和结束之间的中间状态不会被其他事务看到 mysql通过mvcc多版本控制实现

    2020-03-19 15:55:38
    赞同 展开评论 打赏
    1. ACID中的Consistent:事务不能破坏关系数据的完整性和业务逻辑的一致性
    2. CAP中的Consistent:多副本间须保持数据一致的特性
    2020-03-04 19:13:18
    赞同 展开评论 打赏
  • 一致性是对数据可见性的约束:中间状态的数据对外不可见,只有最初和最终状态的数据对外可见。 区分于原子性,原子性关注于状态:要么全部成功,要么全部失败,不存在部分成功的状态。

    2020-02-18 22:22:41
    赞同 展开评论 打赏
  • 通俗点来说就是一个在事务内的所有操作,要么都成功,要么都失败

    2020-02-12 11:43:18
    赞同 展开评论 打赏

  • 一致性是对数据可见性的约束,保证在一个事务中的多次操作的数据中间状态对其他事务不可见的。因为这些中间状态,是一个过渡状态,与事务的开始状态和事务的结束状态是不一致的.

    比如现在A和B,我们使用ATM进行转账操作,A-->B一百块钱

    当我们查看两个账户的时候,只会看到A减掉了100,并且B加了100

    绝对不会存在A减掉100,B的账户没有发生变化的情况

    至于中间100块钱从A的账户去扣减,或者B的账户去添加,是我们看不到的中间状态 谢谢!

    image.png

    2019-09-16 13:11:17
    赞同 展开评论 打赏
  • JAVA开发工程师

    保证多个操作要么全部成功,要么一个都不成功

    2019-07-17 23:37:53
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像