间隙锁在MySQL的默认可重复读隔离级别下生效。间隙锁仅对带有FOR UPDATE或LOCK IN SHARE MODE的SELECT语句起作用,对普通的SELECT语句不产生影响。使用场景:当执行范围条件查询时,MySQL可能会在查询结果的边界设置间隙锁。如果有另一个事务尝试在已锁定的间隙内插入新数据,该事务将被阻塞,直至间隙锁被...
在非序列化事务隔离级别下,普通select语句不加锁,读取表时不受锁影响。若使用select.. for share/ select ... for update,需注意其锁定机制。总结来说,锁表后是否还能读表取决于事务隔离级别。在序列化隔离级别下,读取操作可能受到锁影响,而在其他级别,读取通常不受影响。理解并掌握MySQL的锁...
1. INSERT INTO SELECT的注意事项执行此操作时,MySQL会对每行数据逐行加锁,直到复制所有符合条件的数据。这可能导致在业务繁忙时锁住整个表,影响写入操作。因此,除非必要,应尽量避免在事务活跃期间使用。2. CREATE TABLE AS SELECT作为优化创建新表作为选择的结果,可以针对性地选择复制字段,减少复制...