mysql如何设置事务隔离级别_mysql隔离级别设置方法

P粉602998670
发布: 2025-12-19 21:05:02
原创
377人浏览过
MySQL事务隔离级别可通过SESSION或GLOBAL作用域设置,支持READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ(默认)、SERIALIZABLE;可运行时动态调整或通过配置文件持久化,需注意生效范围与权限要求。

mysql如何设置事务隔离级别_mysql隔离级别设置方法

MySQL 中设置事务隔离级别,主要通过 SESSION(当前会话)或 GLOBAL(全局)作用域来配置,支持的级别有 READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READ(默认)、SERIALIZABLE。设置方式分启动时配置和运行时动态调整两种。

查看当前事务隔离级别

执行以下语句可查看当前会话或全局的隔离级别:

  • SELECT @@transaction_isolation;(推荐,MySQL 5.7.20+ 和 8.0 默认返回标准格式如 REPEATABLE-READ
  • SELECT @@tx_isolation;(旧版本兼容写法,已弃用)
  • SELECT @@global.transaction_isolation; 查看全局级别
  • SELECT @@session.transaction_isolation; 查看当前会话级别

会话级隔离级别设置(常用)

在当前连接中生效,不影响其他连接,适合临时调试或特定业务逻辑:

Chatbase
Chatbase

从你的知识库中构建一个AI聊天机器人

Chatbase 117
查看详情 Chatbase
  • SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
  • SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;(省略 SESSION 默认即会话级)
  • 必须在 START TRANSACTIONBEGIN 之前设置才对后续事务生效
  • 若已在事务中,该设置不会影响当前事务,只影响之后开启的新事务

全局隔离级别设置(需权限)

影响所有新建立的连接(已存在的连接不受影响),需要 SUPERSYSTEM_VARIABLES_ADMIN 权限:

  • SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
  • 修改后,新连接将使用该级别,但不会改变正在运行的会话
  • 建议配合配置文件持久化,避免重启失效

配置文件永久生效(推荐生产环境)

编辑 MySQL 配置文件(如 /etc/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf),在 [mysqld] 段添加:

  • transaction-isolation = READ-COMMITTED(注意使用短横线格式,值不带引号)
  • 可选值:`READ-UNCOMMITTED`、`READ-COMMITTED`、`REPEATABLE-READ`、`SERIALIZABLE`
  • 修改后需重启 MySQL 服务才能生效
  • 该配置等效于启动时设置 GLOBAL 级别,且具备持久性

以上就是mysql如何设置事务隔离级别_mysql隔离级别设置方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号