总之,表级锁在MySQL中扮演了关键角色,用于管理并发操作,确保数据一致性。合理利用不同的锁机制,可以有效地避免死锁现象,同时保证系统的高可用性和性能。
2)、如果出现异常,可以减少数据的丢失。因为一次可以只回滚一行或者几行少量的数据。行级锁的缺点如下:1)、比页级锁和表级锁要占用更多的内存。2)、进行查询时比页级锁和表级锁需要的i/o要多,所以我们经常把行级锁用在写操作而不是读操作。3)、容易出现死锁。对于写锁定如下:1)、如果表...
基于锁的粒度分类:表级锁:对整个表上锁,后续事务需等锁释放才能访问,粒度大、加锁简单但易冲突,不会出现死锁,常见于INNODB、MYISAM引擎。页级锁:介于表锁和行锁之间,一次锁定一组数据,并发一般,会出现死锁,如BDB引擎使用。行级锁:锁住表中的一行或多行记录,其他事务可正常访问未锁记录,...
2、各种锁特点 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般 3...
死锁情况:两个或多个事务互相等待对方释放锁,此时数据库可能会选择锁表以避免死锁扩散。未及时提交的事务:未及时提交的事务会持有锁并阻塞其他操作,可能导致锁表。DDL操作:执行数据定义语言(DDL)操作,如ALTER TABLE,通常会在表级别加锁,以防止在表结构变更期间发生数据不一致的问题。手动加锁:...