InnoDB表
时间:2010-12-08 来源:有行动才会有收获
InnoDB锁与MyISAM锁的最大不同,一是支持事务(TRANCSACTION),二是使用行锁。
InnoDB有两种模式的行锁:
1. 共享读锁(S锁),获得锁的事务可以读被加锁的数据行,其他事务也可以读这些数据行,但阻止其他事务获得相同数据集的排他写锁
select * from table_name where ... lock in share mode;
2. 排他写锁(X锁),获得锁的事务可以读写被加锁的数据行,其他事务对这些数据行不可读也不可写,即阻止其他事务取得相同数据集的共享读锁和排他写锁
select * from table_name where ... for update;
不过,InnoDB行锁是通过给索引加锁来实现的,也就是,只有通过索引条件检索数据时,InnoDB才能使用行级锁,否则使用表锁。
相关阅读 更多 +