修改mysql的隔离级别

MySQL的隔离级别是指数据库事务的隔离程度,用于控制并发事务之间的相互影响。MySQL支持四种隔离级别,分别是读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。

  1. 读未提交(Read Uncommitted):最低的隔离级别,事务可以读取其他事务未提交的数据。这种隔离级别可能导致脏读(Dirty Read),即读取到未提交的数据。

  2. 读已提交(Read Committed):事务只能读取其他事务已经提交的数据。这种隔离级别可以避免脏读,但可能会导致不可重复读(Non-repeatable Read),即在同一个事务中多次读取同一数据时,可能会得到不同的结果。

  3. 可重复读(Repeatable Read):事务在执行期间保持一致的快照,即多次读取同一数据时,结果不会发生变化。这种隔离级别可以避免脏读和不可重复读,但可能会导致幻读(Phantom Read),即在同一个事务中多次查询同一范围的数据时,结果集合的行数可能会发生变化。

  4. 串行化(Serializable):最高的隔离级别,事务串行执行,避免了脏读、不可重复读和幻读。但由于串行执行的特性,可能会导致并发性能下降。

在实际应用中,可以根据业务需求选择合适的隔离级别。较低的隔离级别可以提高并发性能,但可能会导致数据不一致的问题;较高的隔离级别可以保证数据的一致性,但可能会降低并发性能。

要通过SQL命令修改MySQL数据库的默认隔离级别,并且使其永久生效,可以按照以下步骤进行操作:

  1. 进入MySQL容器的命令行界面,可以使用以下命令:

    复制代码
    docker exec -it <容器名称或ID> mysql -u<用户名> -p<密码>

    例如:docker exec -it mysql_container mysql -uroot -p

  2. 输入密码后,进入MySQL命令行界面。

  3. 使用以下命令查看当前的默认隔离级别:

    复制代码
    SELECT @@global.tx_isolation;
  4. 使用以下命令修改默认隔离级别,例如将隔离级别修改为"READ-COMMITTED":

    复制代码
    SET GLOBAL tx_isolation = 'READ-COMMITTED';
  5. 使用以下命令再次查看隔离级别,确认修改是否成功:

    复制代码
    SELECT @@global.tx_isolation;
  6. 退出MySQL命令行界面,输入以下命令退出容器的命令行界面:

    复制代码
    exit
  7. 重启MySQL容器,以使修改的默认隔离级别永久生效。

注意:以上操作只会修改当前MySQL容器的默认隔离级别,如果需要修改持久化存储的MySQL数据库的默认隔离级别,需要在启动容器时指定相应的配置参数或修改配置文件。

踩坑:在同一个事务里如果有更新,读取同一张表,必须把数据库的隔离级别设置为READ-COMMITTED, rr的隔离级别在同一个事务中是都读取不到上一条更新的内容的。

相关推荐
Database_Cool_几秒前
阿里云 RDS MySQL 降本增效实战:从规格选型到成本优化,月成本降低64%全攻略
mysql·阿里云·云计算
java_logo6 分钟前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
广州灵眸科技有限公司8 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
Cloud云卷云舒10 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
憧憬成为web高手10 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学10 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh12 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
用户713335851562413 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
z1234567898613 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD13 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关