AI智能
改变未来

MySQL之事务级别及彻底修改默认事务隔离级别


事务隔离级别介绍

  • Serializable: 串行化,事务挨个执行,相当于将事务放到队列中依次执行保证了事务的一致性,隔离性,但是对于要求高并发的系统而言降低了其并发性,举个不太恰当的例子,比如说AB两个客户进行网络购物,在同一时刻同时点击了提交订单的选项,这一时刻如果A先点击那么A就先进入事务队列;
  • Repetable read:可重复读,无论其他事务是否修改或提交了数据,对于这个事务而言看到的数据不会受其他事务的影响,不能保证事务的一致性;
  • Read uncommitted:能够读取其他事物未提交的数据,不能保证事务的隔离性;
  • Read committed:仅当当前事务提交到数据库后,其他事物才能执行读取数据库中更改的数据,保证了事物的一致性和隔离性,还以AB两个人进行网络购物同时点击提交订单为例,如果B的网速比A的网速快,那么就先执行B的事务,直到B提交事务后A才能开始其事务。

彻底修改默认事务隔离级别,以liunx为例

  • 解决方法:在终端输入sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,修改mysql的配置文件,在最后一行加入transaction-isolation=READ-COMMITTED,以Read committed为例,然后sudo service mysql restart重启mysql服务,例图如下:

  • 查看是否修改成功:在终端进入mysql,然后随便use一个数据库,输入select @@tx_isolation;即可查看,如下:

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » MySQL之事务级别及彻底修改默认事务隔离级别