【MySQL】数据库的隔离级

打印 上一主题 下一主题

主题 822|帖子 822|积分 2466

数据库的隔离级别是指多个事件并发实验时,数据库体系应该怎样保证事件之间的隔离程度。不同的隔离级别具有不同的并发控制计谋,从而影响了事件的隔离性、性能和并发度。
一、隔离级别的分类

根据ANSI/ISO SQL标准,数据库隔离级别分为以下四种:


  • 读未提交(Read Uncommitted)
    最低级别的隔离。
    一个事件可以读取另一个事件尚未提交的数据修改,这可能导致脏读标题。
    脏读指的是一个事件读取到了另一个事件尚未提交的数据,而后者可能会在后续被回滚,从而导致读取到的数据现实上是无效的。
    由于答应脏读,读未提交的隔离级别无法保证事件的一致性。
    数据库体系在读未提交的隔离级别下需要较少的并发控制和锁定操纵,因此具有较低的并发性,但也增长了数据不一致的风险。
  • 读已提交(Read Committed)
    一个事件只能读取到已经提交的数据修改,制止了脏读标题。
    已提交数据可见,意味着其他事件尚未提交的数据修改对当前事件是不可见的。
    读已提交的隔离级别可以保证事件读取到的数据是一致的,但无法办理不可重复读和幻读标题。
    不可重复读指的是在一个事件内,多次读同一数据,由于其他事件的修改,导致两次读到的数据可能不一样。
    幻读指的是在同一个事件中多次实验相同的查询,但结果集却不一致,通常是由于其他事件插入或删除了符合查询条件的数据。
  • 可重复读(Repeatable Read)
    提供了比读已提交更高的隔离性。
    在可重复读隔离级别下,一个事件在实验过程中多次读取同一行数据,可以得到一致的结果,即使其他事件对数据进行了修改也不会影响到当前事件的读取结果。
    可重复读隔离级别办理了读已提交隔离级别中的不可重复读标题,也可以一定程度上防止幻读标题。
    但在高并发环境下,可能仍然会出现幻读标题,因此在对数据一致性要求极高的场景中,可能需要选择更高级别的隔离级别。
  • 串行化(Serializable)
    最高级别的隔离。
    事件之间具有完全的隔离性,每个事件都像是在独立的实验环境中实验一样,互不干扰。
    串行化隔离级别可以完全制止全部的并发标题,包括脏读、不可重复读和幻读等。
    但由于事件之间完全串行实验,可能会对体系的性能产生较大的影响,导致体系的吞吐量下降,相应时间延伸。
    同时,串行化隔离级别也增长了死锁的风险。
二、各数据库体系默认的隔离级别

Oracle:默认的隔离级别为读已提交(Read Committed)。
MySQL:默认的隔离级别为可重复读(Repeatable Read)。
三、隔离级别的设置与查询

设置隔离级别


  • 全局设置:已存在的会话(session)不访问效,以后的新会话访问效。例如,设置全局的隔离级别为读未提交,可以使用SQL语句“SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;”。
  • 当前会话设置:仅对当前会话见效。例如,设置当前会话的隔离级别为读未提交,可以使用SQL语句“SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;”。
  • 查询当前隔离级别
    可以使用SQL语句查询当前会话或全局的隔离级别。例如,在MySQL中,可以使用“SELECT @@tx_isolation;”来查询当前会话的隔离级别。
四、隔离级别的应用场景



  • 读未提交(Read Uncommitted):通常用于一些对数据一致性要求不高、并发性要求较高的场景,例如某些只读取数据而不进行更新的报表查询或者临时数据分析任务。但在大多数生产环境中,读未提交的隔离级别往往是不保举使用的,由于它可能导致数据的不一致性,增长体系出错的风险。
  • 读已提交(Read Committed):适用于大多数平凡的数据库操纵场景,它提供了一定程度的数据隔离,制止了脏读标题,并保证了读取到的数据是一致的。但由于无法办理不可重复读和幻读标题,因此在某些应用场景下仍可能需要更高级别的隔离级别。
  • 可重复读(Repeatable Read):适用于对数据一致性要求较高的场景,如金融交易体系等。它保证了事件内部多次读取同一行数据的一致性,制止了不可重复读标题。但在高并发环境下,可能仍然会出现幻读标题。
  • 串行化(Serializable):适用于对数据一致性要求极高的场景,如某些关键数据的更新操纵。它提供了最高的隔离性,可以完全制止全部的并发标题。但由于其严酷的实验次序要求,可能会对体系的性能产生较大的影响。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

河曲智叟

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表