当前位置:网站首页>MySQL 45 lecture learning notes (VI) global lock
MySQL 45 lecture learning notes (VI) global lock
2022-07-04 06:37:00 【Tom Kong】
One . Global lock : Lock the entire database instance
Mysql It provides a way to add global read lock The order is
Flush tables with read lock(FTWRL)
When you need to make the whole library Read only status , You can use this command , Statements from other threads will Blocked
data to update sentence ( Data Additions and deletions ),
data Definition sentence ( Include Build table , Modify table structure etc. )
Update transaction Submit sentence
Typical use scenario of global lock -- Make a full library logical backup
That is the The whole database, every table select Come out and save it as text During the backup process The entire library is read-only , But let The whole library is read-only, which is dangerous
- Main database backup , Update cannot be performed during backup , Business basically stopped
- Backup from the library , During the backup, the slave database cannot synchronize with the master database binlog, It can lead to Master-slave delay
- No locks Words , The library that the backup system backs up is not a logical point in time , This view is logically inconsistent .
The official logic backup tool is mysqldump
When mysqldump, Using parameter -single-transaction When , A transaction will be started before importing data , To ensure a consistent view
because MVCC This data can be updated normally .
Table lock MySql There are two types of lock at the inner table level :
- One is watch lock ,
- One is metadata lock (meta data lock,MDL)
The syntax of table lock is lock tables ...read/write. And FTWRL similar . It can be used unlock tables Active release lock . It can also be released automatically when the client is disconnected .
We need to pay attention to lock tables grammar In addition to restricting the reading and writing of other threads Also limited The next operation object of this thread .
- For example , If in a thread A perform lock tables t1 t2 write This statement , Other threads write t1, Reading and writing t2 All of the statements will be blocked
- meanwhile , Threads A In execution unlock tables Previously, you could only read t1, Reading and writing t2 The operation of . Linking t1 Not allowed , Naturally, you can't access other tables .
When there is no finer grained lock , Table locking is the most common way to handle concurrency .
Two . The watch lock is MDL(metadata lock)
- MDL You don't need to explicitly use , When accessing a table, it will be automatically added
- MDL The role of is , Ensure the correctness of reading and writing
- If a query is traversing data in a table , Another thread changes the table structure during execution , Delete a list , Then the result obtained by the query thread does not match the table structure , Definitely not .
- therefore , stay MySQL5.5 Version to introduce MDL, When a table is adding, deleting, modifying, and querying , add MDL Read the lock , When it comes to watch When making structural changes , add MDL Write lock
- Read locks are not mutually exclusive , So you can have multiple threads to add, delete, modify and query a table at the same time
- Read and write locks are mutually exclusive , Write locks are mutually exclusive , To ensure the security of the operation to change the structure of the table . therefore , If two threads want to add fields to a table at the same time , One of them has to wait for the other to finish executing .
Add fields to a small table , Cause the whole library to hang
- In the transaction MDL lock . Apply at the beginning of statement execution , But it will not be released immediately after the statement ends , Instead, it will be released after the whole transaction is committed .
- First of all, we have to deal with long affairs , The transaction does not commit , Will always occupy MDL lock . stay MySQL Of information_schema Library innoDB_trx In the table , You can find the current transaction in progress 、
- You have to DDL The changed table happens to have a long transaction running , Consider suspending DDL perhaps kill Long Affairs
Special scenes
If the table you want to change is a hotspot table , Although the amount of data is small , But the requests are frequent , And you have to add a field , What should you do
- stay alert table Statement to set the waiting time , If the specified waiting time can be obtained MDL It's better to write lock , Don't block the following business statements if you can't get them , Give up first , Then the developer or DBA Repeat the process by retrying the command .
边栏推荐
- tars源码分析之10
- [backpack DP] backpack problem
- 2022年,或許是未來10年經濟最好的一年,2022年你畢業了嗎?畢業後是怎麼計劃的?
- How to avoid JVM memory leakage?
- R statistical mapping - random forest classification analysis and species abundance difference test combination diagram
- 1、 Relevant theories and tools of network security penetration testing
- How does the inner roll break?
- SQL injection SQL lab 11~22
- C语言中的排序,实现从小到大的数字排序法
- Mysql 45讲学习笔记(十)force index
猜你喜欢
Arcpy 利用updatelayer函数改变图层的符号系统
[MySQL] introduction, function, creation, view, deletion and modification of database view (with exercises)
Wechat applet scroll view component scrollable view area
Abap:ooalv realizes the function of adding, deleting, modifying and checking
R统计绘图-随机森林分类分析及物种丰度差异检验组合图
C实现贪吃蛇小游戏
Shopping malls, storerooms, flat display, user-defined maps can also be played like this!
期末周,我裂开
QT get random color value and set label background color code
如何实现视频平台会员多账号登录
随机推荐
STM32 单片机ADC 电压计算
How does the inner roll break?
【问题记录】03 连接MySQL数据库提示:1040 Too many connections
Appium基础 — APPium安装(二)
8. Factory method
采用中微BATG135实现IIC数据/指令交互
2022年,或許是未來10年經濟最好的一年,2022年你畢業了嗎?畢業後是怎麼計劃的?
ABCD four sequential execution methods, extended application
Analysis of tars source code 5
Functions in C language (detailed explanation)
Realize IIC data / instruction interaction with micro batg135
Operator < <> > fool test case
Analysis of tars source code 1
如何实现视频平台会员多账号登录
[March 3, 2019] MAC starts redis
Fast power (template)
Vant --- detailed explanation and use of list component in vant
4G wireless all network solar hydrological equipment power monitoring system bms110
Native Cloud - SSH articles must be read on Cloud (used for Remote Login to Cloud Server)
The sorting in C language realizes the number sorting method from small to large