mysql读已提交隔离级别下要保证数据一致性,使用事务即可,事务会在更新数据时自动应用排它锁,不需要手动使用锁。这个隔离级别下,唯一的问题就是不能防止幻读,导致有数据被漏更新。这种情况出现的概率比较小,如果出现的不频繁就再更新一次,如果比较频繁就做个定时任务,定时更新数据。
常用的锁也就是排他锁和共享锁。
共享锁是可重复读隔离级别下事务进行读操作时自动应用的。
排他锁也是可重复读和读已提交隔离级别下事务进行写操作时自动应用的。
如果要自己手动应用,应用方法如下:
共享锁:select * from table_name where condition in share mode;
排他锁:select * from table_name where condition for update;
共享锁也叫读锁,一个事务对某条数据加了共享锁,别的事物只能读这条数据,如果要写就会处于阻塞等待状态。
排他锁也叫写锁,一个事务对某条数据加了排他锁,别的事物如果要读或者写这条数据都会处于阻塞等待状态。