当前位置:网站首页>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 .
边栏推荐
- What is a spotlight effect?
- R statistical mapping - random forest classification analysis and species abundance difference test combination diagram
- Background and current situation of domestic CDN acceleration
- 2022 where to find enterprise e-mail and which is the security of enterprise e-mail system?
- Tar source code analysis Part 2
- Redis面试题集
- 分布式CAP理论
- Common usage of time library
- Learn about the Internet of things protocol WiFi ZigBee Bluetooth, etc. --- WiFi and WiFi protocols start from WiFi. What do we need to know about WiFi protocol itself?
- Operator < <> > fool test case
猜你喜欢

MySQL installation and configuration

Learning multi-level structural information for small organ segmentation

Fundamentals of SQL database operation

JSON web token -- comparison between JWT and traditional session login authentication

颈椎、脚气

Shopping malls, storerooms, flat display, user-defined maps can also be played like this!

雲原生——上雲必讀之SSH篇(常用於遠程登錄雲服務器)

Native Cloud - SSH articles must be read on Cloud (used for Remote Login to Cloud Server)
![[MySQL] introduction, function, creation, view, deletion and modification of database view (with exercises)](/img/03/2b37e63d0d482d5020b7421ac974cb.jpg)
[MySQL] introduction, function, creation, view, deletion and modification of database view (with exercises)

List of top ten professional skills required for data science work
随机推荐
Json Web token - jwt vs. Traditional session login Authentication
如何实现视频平台会员多账号登录
MySQL learning notes 3 - JDBC
Inputstream/outputstream (input and output of file)
2022 where to find enterprise e-mail and which is the security of enterprise e-mail system?
Mysql 45讲学习笔记(十二)MySQL会“抖”一下
[problem record] 03 connect to MySQL database prompt: 1040 too many connections
C realize Snake games
[March 3, 2019] MAC starts redis
tars源码分析之1
Which water in the environment needs water quality monitoring
[untitled]
C实现贪吃蛇小游戏
746. Climb stairs with minimum cost
2022, peut - être la meilleure année économique de la prochaine décennie, avez - vous obtenu votre diplôme en 2022? Comment est - ce prévu après la remise des diplômes?
What is tweeman's law?
11. Dimitt's law
Another company raised the price of SAIC Roewe new energy products from March 1
Wechat applet scroll view component scrollable view area
8. Factory method