当前位置:网站首页>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源码分析之2
- Option (024) - do all objects have prototypes?
- [number theory] fast power (Euler power)
- MySQL learning notes 3 - JDBC
- How to use multithreading to export excel under massive data? Source code attached!
- Distributed cap theory
- Shopping malls, storerooms, flat display, user-defined maps can also be played like this!
- 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?
- CORS is not intended to protect API endpoints - nikofischer
- Arcpy 利用updatelayer函数改变图层的符号系统
猜你喜欢

Native Cloud - SSH articles must be read on Cloud (used for Remote Login to Cloud Server)

2022 Xinjiang's latest eight members (Safety Officer) simulated examination questions and answers

Learning multi-level structural information for small organ segmentation

27-31. Dependency transitivity, principle

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?

SQL injection SQL lab 11~22

Tree DP

QT get random color value and set label background color code

R statistical mapping - random forest classification analysis and species abundance difference test combination diagram

颈椎、脚气
随机推荐
Stc8h development (XII): I2C drive AT24C08, at24c32 series EEPROM storage
2022年,或許是未來10年經濟最好的一年,2022年你畢業了嗎?畢業後是怎麼計劃的?
[Android reverse] function interception (CPU cache mechanism | CPU cache mechanism causes function interception failure)
Modify TCP timestamp to optimize transmission performance
Mysql 45讲学习笔记(十)force index
[problem record] 03 connect to MySQL database prompt: 1040 too many connections
tcp socket 的 recv 如何接收指定长度消息?
746. Climb stairs with minimum cost
运算符<< >>傻瓜式测试用例
tars源码分析之4
QT qtablewidget table column top requirements ideas and codes
雲原生——上雲必讀之SSH篇(常用於遠程登錄雲服務器)
JSON Web Token----JWT和傳統session登錄認證對比
How does the recv of TCP socket receive messages of specified length?
8. Factory method
Tar source code analysis Part 2
Tar source code analysis 6
Mysql 45讲学习笔记(十四)count(*)
[untitled]
Redis面试题集