MySQL有四种隔离级别:
- 读未提交:事务可以读取未提交的数据,可能会读到脏数据,会导致脏读、不可重复读、幻读等问题;
- 读已提交:只能读取到已经提交的数据,可以避免脏读的问题,但是可能会遇到不可重复读、幻读问题;
- 可重复读:保证同一个事务中多次读取同一数据的结果是一致的,避免了脏读和不可重复读的问题,但可能会遇到幻读的问题;
- 序列化:最高的隔离级别、可以避免所有的并发问题,但是并发性能非常低,开销很大。
MySQL的默认隔离级别是可重复读。 脏读指一个事务读到了另一个事务未提交的数据,不可重复读指同一个事务多次读取同一数据得到不同结果,幻读指同一个事务前后读取的数据集合不一致。 在实际使用中,应该根据具体情况选择合适的隔离级别,权衡数据的一致性和并发性能。