数据库锁的初衷:处理并发问题
全局锁表锁行锁全局锁:对整个数据库实例加锁。mysql
提供了一个加全局读锁的方法(ftwrl),flush tables with read lock
,之后整个数据库处于读锁状态。
使用场景:全库逻辑备份,就是说把整库每个表都lect出来存成文本。
这个库变成只读状态后:
如果在主库上备份,备份烤肉串配料期间都不能执行更新,业务基本上就得仇的拼音停摆在从库上备份,备份充分条件必要条件期间从库不能执行主库同步过来的binlog
,导致主从延迟。表级锁:对整个表进行加锁。加锁l西湖的资料ock tables xxx read/write
,释放锁unlock tables xxx
,客户端断开的时候也会自动释放表锁。注意:lock tables语法除了会限制别的线程的读写外,也限制了本线程接下来的操作对象。
在线程a中使用lock tables t1 read, t2 write
后,其他线程写t1,读写t2都飞行员要求会被阻塞,同时,线程a在执行unlock tables
之前,只能执行读t1,读写t2的操作。
排他锁,能确保在给定的时间里,只有一个用户能执行写入,并防止其他用户读取正在写入的同一资源。
mysql
锁粒度
mysql
最基本的锁策略,也是开销最小的策略。注:在mysql
的information_schema
库的innodb_trx
表中,可以查到当前执行的事务。
本文发布于:2023-04-08 10:27:44,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/7c164dcab76f6c2068301615e0f345f6.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:全局锁和表锁(6).doc
本文 PDF 下载地址:全局锁和表锁(6).pdf
留言与评论(共有 0 条评论) |