当前位置:网站首页>MySQL global lock and table lock
MySQL global lock and table lock
2022-07-05 23:55:00 【ADU】
MYSQL The lock inside can be divided into : Global lock , Table lock , Row-level locks
1 Global lock
Lock the whole database instance
MYSQL Provide global lock reading methods :Flush tables with read lock(FTWRL)
This command makes the entire library read-only , After using this command , Data update statement 、 Data definition statements and commit statements of update class transactions are blocked
1.1 Use scenarios
Global logical backup
risk :
- If the main database is backed up , Cannot update during backup , Business suspension
- If backing up from the Library , Cannot perform primary database synchronization during backup binlog, Cause master-slave delay
The official logic backup tool mysqlddump, When mysqldump Using parameter –single-transaction When , Will start a transaction , Make sure you get a consistent view . because MVCC Support for , The data in this process can be updated normally
Consistent reading is good , But only if the engine supports this isolation level
If you want the full library to be read-only , Why not use set global readonly=true The way ???
1 In some systems ,readonly The value of will be used for other logic , For example, judge the primary and standby databases . So modify global The way variables affect too much
2 There are differences in exception handling mechanisms , If you execute FTWRL After the command, due to the abnormal disconnection of the client , that MYSQL This global lock will be released automatically , The whole library can return to the normal update state . Instead, set the entire library to readonly after , If the client has an exception , Then the database will remain readonly state , This will cause the entire library to be in a non writable state for a long time , High risk
2 Table lock
MYSQL There are two kinds of meter level locks inside , One is watch lock , One is metadata lock (meta data lock, MDL)
2.1 Table locks
Syntax of table lock : lock tables…read/write
have access to unlock tables Active release lock , It can also be released automatically when the client is disconnected .lock tables The syntax will restrict the reading and writing of other threads , It also defines the next operation objects of this thread
about InnoDB This kind of engine supports row lock , commonly Don't use lock tables Command to control concurrency , After all, locking the whole table still has a great impact .
2.2 MDL
You don't need to explicitly use , It will be added automatically when accessing a table
effect : Ensure the correctness of reading and writing
1 When adding, deleting, modifying and querying a table , Add MDL Read the lock
2 When changing the table structure , Add MDL Write lock
3 Read locks are not mutually exclusive
4 Read-write lock , Write locks are mutually exclusive , It is used to ensure the security of the schema operation of the change table
5 MDL Will not be released until the transaction is committed , When making table structure changes , Be careful not to lock online queries and updates
边栏推荐
- How much do you know about the bank deposit business that software test engineers must know?
- Redis高可用——主从复制、哨兵模式、集群
- 总结了 800多个 Kubectl 别名,再也不怕记不住命令了!
- Asynchronous task Whenall timeout - Async task WhenAll with timeout
- 激光slam学习记录
- 软件测试工程师必会的银行存款业务,你了解多少?
- [SQL] SQL expansion languages of mainstream databases (T-SQL, pl/sql, pl/pgsql)
- 哪些偏门项目可以做到?自媒体做到月赚一万以上很难吗?
- Zero rhino technology joined hands with the intelligence Club: the "causal faction" forum was successfully held, and the "causal revolution" brought the next generation of trusted AI
- 行列式学习笔记(一)
猜你喜欢

Do you regret becoming a programmer?

Rsync remote synchronization

【在线聊天】原来微信小程序也能回复Facebook主页消息!

Tips for using pads router

Laser slam learning record

SpreadJS 15.1 CN 与 SpreadJS 15.1 EN

软件测试工程师必会的银行存款业务,你了解多少?
![[day39 literature extensive reading] a Bayesian perspective on magnetic estimation](/img/9c/438ef820a9f703c21f708bfc1dbbc4.jpg)
[day39 literature extensive reading] a Bayesian perspective on magnetic estimation

Bao Yan notebook IV software engineering and calculation volume II (Chapter 8-12)

Spire Office 7.5.4 for NET
随机推荐
用列錶初始化你的vector&&initializer_list簡介
Miaochai Weekly - 8
Cwaitabletimer timer, used to create timer object access
STM32__ 06 - single channel ADC
Initialize your vector & initializer with a list_ List introduction
微信小程序---WXML 模板语法(附带笔记文档)
教你在HbuilderX上使用模拟器运行uni-app,良心教学!!!
Use mapper: --- tkmapper
wx.getLocation(Object object)申请方法,最新版
上门预约服务类的App功能详解
20.移植Freetype字体库
Qt QPushButton详解
20220703 周赛:知道秘密的人数-动规(题解)
C file and folder operation
跟着CTF-wiki学pwn——ret2libc1
el-cascader的使用以及报错解决
SpreadJS 15.1 CN 与 SpreadJS 15.1 EN
C reflection and type
GD32F4xx uIP协议栈移植记录
"14th five year plan": emphasis on the promotion of electronic contracts, electronic signatures and other applications