Skip to content

transaction_isolation

xiaoboluo768 edited this page Jun 14, 2020 · 3 revisions
  • 设置隔离级别的参数:transaction_isolation='read-uncommitted|read-committed|repeatale-read|serializable':默认是repeatable-read,几个值分别代表的含义:read-uncommitted:读未提交,允许脏读;read-committed:读提交,不允许脏读,但允许不可重复读;repeatable-read:可重复读,不允许脏读、不可重复读,但允许幻读;serializable:串行化,以上都不允许
    • 该参数在mysql命令行直接动态修改时使用的参数名称是tx_isolation='repeatable-read',必须有中杠连接并带有引号
    • 该参数在my.cnf的[mysqld]标签下使用的参数名称是transaction_isolation=repeatable-read,必须有中杠连接,引号可有可无
    • 该参数也可以使用类似语句set transaction isolation level repeatable read;来间接修改,且不带中杠也不带引号,隔离级别关键字之间是使用空格隔开。
    • 动态修改隔离级别时,带global关键字的语句表示对后来的会话生效,对当前会话不生效,带session关键字的语句表示立即对当前会话生效,不带global和session关键字的表示对当前会话的下一个事务或者说下一个请求生效。注意:使用begin或start transaction语句显式开启一个事务之后,不能在活跃的事务内更改隔离级别。这些关键字的作用范围与修改配置参数时效果是一样的
    • 全局,会话,动态变量,枚举类型,默认值为repeatable-read。
    • 注意:该参数有个比较尴尬的地方,即在my.cnf中只能写作transaction_isolation(这个是mysqld的启动选项,但非server system variables),不能写成tx_isolation(这个是server system variables但非启动选项),但是在命令行中只能使用tx_isolation,不能使用transaction_isolation。

上一篇:附录C MySQL常用配置变量和状态变量详解目录 | 下一篇:max_allowed_packet

Clone this wiki locally