暂无图片
分享
张芝
2024-04-08
数据库事务隔离级别的概念最早是在1981年由IBM的Jim Gray等人提出的,定义了四种隔离级别,是哪些

rt

收藏
分享
4条回答
默认
最新
Whill

读未提交(Read uncommitted):最低的隔离级别,允许一个事务读取另一个未提交事务的数据,可能导致脏读、不可重复读、幻读等问题。
读提交(Read committed):目前被应用最为广泛的使用的事务隔离级别,只允许一个事务读取另一个已提交事务的数据,可以避免脏读,但不能避免不可重复读、幻读等问题。
可重复读(Repeatable read):较高的隔离级别,保证一个事务在执行过程中对同一数据的多次读取结果都是一致的,可以避免脏读、不可重复读,但不一定能避免幻读等问题。
串行化(Serializable):最高的隔离级别,要求事务串行执行,不允许并发访问和修改同一数据,可以避免脏读、不可重复读、幻读等所有问题,但性能最差。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
yBmZlQzJ
  1. 读未提交(Read Uncommitted):这是最低的事务隔离级别。在这个级别下,一个事务可以读取另一个未提交事务的数据。这意味着可能会出现脏读问题,即一个事务读取了另一个未提交事务修改但还未提交的数据。如果那个事务发生错误并执行回滚操作,那么先前的读取操作读取到的数据就是脏数据24。

  2. 读已提交(Read Committed):在这个级别下,一个事务要等到另一个事务提交后才能读取数据。这样可以解决脏读问题,但并发操作可能导致不可重复读问题。即在一个事务内多次读取同一数据,由于其他事务的修改导致前后读取的数据不一致24。

  3. 可重复读(Repeatable Read):这个级别保证了在同一个事务中多次读取同一数据会看到相同的结果,解决了不可重复读的问题。但在这个级别下,幻读问题仍然可能出现,即一个事务读取到了另一个事务插入的新数据。为了解决这个问题,一些数据库系统如MySQL的InnoDB存储引擎采用了多版本并发控制(MVCC)机制124。

  4. 串行化(Serializable):这是最高的事务隔离级别。在这个级别下,事务被串行化顺序执行,避免了脏读、不可重复读和幻读问题。但是这个级别的效率相对较低,对数据库性能的消耗较大,一般只在必要时使用。在实际应用中,选择合适的事务隔离级别需要根据具体需求和性能要求进行权衡241。

暂无图片 评论
暂无图片 有用 0
打赏 0
玄虚子

读未提交(Read uncommitted):最低的隔离级别,允许一个事务读取另一个未提交事务的数据,可能导致脏读、不可重复读、幻读等问题。
读提交(Read committed):目前被应用最为广泛的使用的事务隔离级别,只允许一个事务读取另一个已提交事务的数据,可以避免脏读,但不能避免不可重复读、幻读等问题。
可重复读(Repeatable read):较高的隔离级别,保证一个事务在执行过程中对同一数据的多次读取结果都是一致的,可以避免脏读、不可重复读,但不一定能避免幻读等问题。
串行化(Serializable):最高的隔离级别,要求事务串行执行,不允许并发访问和修改同一数据,可以避免脏读、不可重复读、幻读等所有问题,但性能最差。

暂无图片 评论
暂无图片 有用 0
打赏 0
大树666

pg和mysql貌似通过使用xmax隐藏字段和临键锁 在可重复读的隔离级别下解决了幻读的问题吧?

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
MYSQL 聚集索引存储 比如说有个订单表每个月有200万个订单,其中有100个订单为取消支付的状态。假如我把这100万给删除了, 会不会加快查询的速度?
回答 1
理论是上可以加快查询速度的,但是删除取消支付不符合业务要求;购物订单有一个付款倒计时,不知道这个倒计时结束是否会有删除取消支付的操作。
mysql中有子事务的概念吗?savepoint方式属于子事务吗?
回答 1
MySQL中有子事务的概念,但是和PostgreSQL中的Savepoint不是一个意思。在MySQL中,可以使用SAVEPOINT语句来保存当前事务的状态,以便在需要时恢复到该状态。SAVEPOIN
本地查mysql密码怎么查?
回答 1
已采纳
加密的不方便查。5.65.7还是可以selectpassword(‘密码’)对比一下
求一份mysql dba运维脚本,类似oracle dba 使用 ora脚本或者 percona-toolkit 工具查看主从延时,kill等功能
回答 2
MYSQL官方的mysqlutiles工具集就不错,但是是使用python2编写的.(yum也是使用python2写的,所以不用担心没得python2).下载地址:https://downloads.
mysql 有没有一个数据字典表,能查到table表,A列中每个唯一值对应的记录数?
回答 1
就是分组显示啊selectA,count(1)fromtable表groupby A
MySQL中一张表每天全量更新,其中usesql自己生成,userid更新进去的,usersql如何生成才能保证这两个字段对应?
回答 2
没有看明白1
MySQL 10t数据如何不停机迁移?
回答 5
迁移的话,1、如果是上云,工具dts或者cloudcanal(cloudcanal有社区版和saas版,社区版可以白嫖一下)。首先推荐用dts工具,出了问题有官方支持;不停机的话,为了防止dns切换的
mac安装完MySQL需要配置什么吗?
回答 1
已采纳
官方有Mac下安装mysql的dmg安装包:https://dev.mysql.com/downloads/mysql/建议用docker容器方式安装,便于后期调整,别在Mac本机直接安装数据库;
mysql的巡检脚本可以用于mariadb吗?
回答 2
已采纳
在大多数情况下,为 MySQL 编写的巡检脚本可能可以在 MariaDB 上使用,但不能保证完全兼容。MySQL和MariaDB有一定的相似性,但也存在一些差异
MySQL 怎么根据已有的记录逆向生成insert语句?
回答 1
给你举个例子。我以前做的。mysqlbinlogstartdatetime'2018082112:50:00'stopdatetime'2018082113:05:00'base64outputdec