从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章主要讲解了“MySQL中的全局锁是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中的全局锁是什么”吧!
我们提供的服务有:成都网站建设、成都做网站、微信公众号开发、网站优化、网站认证、港南ssl等。为数千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的港南网站制作公司
1、全局锁就是对整个数据库实例加锁。
2、MySQL提供了一个加全局读锁的方法,命令是Flush tables with read lock。当整个数据库需要只读时,可以使用这个命令。
然后其他线程的以下句子会被堵塞:数据更新句子(数据增删)、数据定义句子(包括建表、修改表结构等。)和更新事务的提交句子。
典型的全局锁使用场景是做全库逻辑备份。也就是说,整个库的每个表都被select存储成文本。
但让整个库只读,可能会出现以下问题:
如果在主库备份,备份期间不能更新,业务基本停止。
若从库备份,则在备份期间无法执行主库同步的binlog,则会导致主从延迟。
打开可重复读隔离级别的事务可以获得一致性视图。
mysqldump是官方的逻辑备份工具。当mysqldump使用参数-single-transaction时,将在导数据之前启动事务,以确保获得一致性视图。由于MVCC的支持,数据可以在这个过程中正常更新。single-transaction仅适用于所有表使用事务引擎的库。
既然要全库只读,为什么不用setglobalreadonly=true?
在一些系统中,readonly的值将被用作其他逻辑,例如,它用于判断一个库是主库还是备库。因此,修改global变量的方法有更大的影响。
异常处理机制存在差异。如果在执行Flushtableswithreadlock命令后,由于客户端异常断开,MySQL会自动释放整个锁,整个库会回到正常更新的状态。在将整个库设置为readonly,如果客户端出现异常,数据库将始终保持readonly状态,这将导致整个库长期处于不可写状态,风险更高。
感谢各位的阅读,以上就是“mysql中的全局锁是什么”的内容了,经过本文的学习后,相信大家对mysql中的全局锁是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图