事务的隔离级别是指多个事务并发的处理同一个数据的时候,一个事务修改了数据之后,其它事务何时可以看到修改后的结果。
主要分四种:
1、SERIALIZABLE:串行化,多个事务同时使用一个表的时候,不可以对这个表修改,否则会修改失败,如果想要修改这个表,只能一个事务一个事务顺序执行。
2、REPEATABLE-READ:可重复读,无论其它事务是否修改并提交了数据,在本事务中对数据的多次读取结果都相同,不受其他事务影响。
3、ERAD-COMMITTED:读取已提交,其它事务提交了对数据的修改之后,本事务就能读取到修改后的数据值。
4、READ-UNCOMMITTED:读取未提交,其它事务只要修改了数据,即使未提交,本事务也能看到修改后的数据。
MySQL数据库默认使用的是可重复读(REPEATABLE-READ)。
使用乐观锁的时候,如果一个事务修改了库存并提交了事务,那其它的事务应该可以读取到修改后的数据值,所以不能使用可重复读的隔离级别,应该修改为读取已提交。
在我们的项目中,如果我们没有去修改MySQL的数据库事务隔离级别,那么我们的程序会一直卡住,同时界面上也不会有任何的响应,对用户体验来说很不好,程序上也存在很大的问题。
来看看怎么做,如何去修改MySQL的事务隔离级别。