当前位置:网站首页>Linux server development, MySQL transaction principle analysis
Linux server development, MySQL transaction principle analysis
2022-07-07 07:55:00 【Tuen Mun pheasant calls me chicken】
Recommend a free open course of zero sound College , Personally, I think the teacher spoke well , Share with you :Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK, Streaming media ,CDN,P2P,K8S,Docker,TCP/IP, coroutines ,DPDK Etc , Learn now
1. What is the business
A transaction is going from one consistency state to another consistency state .
sentence
- START TRANSACTION | BEGIN
- COMMIT
- ROLLBACK
- SAVEPOINT identifier
- ROLLBACK TO SAVEPOIN
2.ACID characteristic
Atomicity (A)
Commit transactions or do all , Either not .
Uniformity (C)
A transaction unit can only be visible by other transactions after committing transactions .
Isolation, (I)
Multiple connections process data at the same time , Don't affect each other . To improve performance , Through granularity lock , Set different isolation levels .
persistence (D)
DML Operations are persisted , Even if it goes down , Data can be retrieved according to the log .
3. Isolation level
READ UNCOMMITTED
Read uncommitted , Reads at this level are unlocked , Write and lock it , Write locks release locks after a transaction is committed or rolled back .
READ COMMITTED
Read submitted RC, Support... From this level MVCC, That is, to provide consistent, unlocked reads ; At this time, read the historical snapshot data ; Read the latest data of the historical version under this isolation level , So read the submitted data .
REPEATABLE READ
Repeatable RR, Support MVCC, At this time, the read operation reads the version data at the beginning of the transaction .
SERIALIZABLE
Serialization , Support MVCC, The highest level of isolation .
command :
– Set level isolation
SET GLOBAL |SESSION TRANSACTION ISOLATION LEVE REPEATABLE READ;
SET @@tx_isolation=‘REPEATABLE READ’;
SET @@global.tx_isolaction =‘REPEATABLE READ’;
– View global level isolation
SELECT @@global.tx_isolation;
– View the current level of isolation
SELECT @@session.tx_isolation;
SELECT @@tx_isolation;
– Manually add... To the reading S Read the lock
SELECT … LOCK IN SHARE MODE;
– Manually add... To the reading X Write lock
SELECT …FOR UPDATE;
– View the current lock information
SELECT &FROM information_schema.innodb_locks;
S Shared lock :
Lock added by transaction read operation , Lock every line , Only serialization will add S lock .
x Exclusive lock :
The transaction deletes or updates the lock added , Lock on a line . This lock is added to all four isolation levels .
IS Intention sharing lock :
Intention lock is to tell other things , This form is in use . Function exclusion table lock reading . Insert with IS, add X. Use exclusive locks indirectly .
IX Intention exclusive lock :


Intention locks and read-write locks at the full table level will conflict , Intention will only conflict with row lock , Row lock conflicts with row lock .
GAP LOCK Clearance lock and NEXT-KEY Lock these two locks only in READ REPEATE Exists under level . The clearance lock locks a range , But not the record itself , Fully open section NEXT-KEY It's a record lock + Clearance lock , Lock a range and record itself , Left open right closed interval . These two locks often cause deadlocks .
INSERT INTENTION LOCK, For example 1,7 Row insertion , If there is an intention to insert a lock, it can be inserted simultaneously 3,4. Improve the concurrency performance of the insertion gap .
AUTO INCR-LOCK Low probability of self incrementing lock B+ The split of the tree , Improved self growth value insertion performance .

Dirty reading
Business A Read another uncommitted transaction .
It can't be read repeatedly
Business A You can read about affairs B Data submitted , It usually happens in a transaction that reads data different from the transaction .
Fantasy reading
Read the same range of data twice , Result set ( More or different data ) Dissimilarity . Non repeatable reading refers to row data , Unreal reading refers to the scope .
Locking before a transaction starts is a persistent lock , The lock is released only when the transaction is committed or rolled back .
Lost update
Both transactions are written , It is divided into commit overrides and rollback overrides . Rollback overwrite has been rejected by the database .
Look at deadlocks
– Turn on standard monitoring
- CREATE TABLE innodb_monitor(a INT) ENGINE=INNODB;
– Turn off standard monitoring - DROP TABLE innodb_monitorl
– Turn on the lock monitor - CREATE TABLE innodb_lock_monitor ( INT ) ENGINE=INNOB;
– Turn off lock monitoring - DROP TABLE innodb_lock_monitor
– Turn on standard monitoring
- set GLOBAL innodb_status_output_ON;
– Turn off standard monitoring - set GLOBAL innodb_status_status_output=OFF;
– Turn on the lock monitor - set GLOBAL innodb_status_outpus_locks=ON;
– Turn off lock monitoring - set GLOBAL innodb_status_output_locks=OFF;
– Record deadlock information in the error log - set GLOBAL innodb_print_all_deadlocks=ON;
边栏推荐
- Codeforces Global Round 19
- Linux server development, MySQL stored procedures, functions and triggers
- What are the positions of communication equipment manufacturers?
- dash plotly
- C语言通信行程卡后台系统
- Live broadcast platform source code, foldable menu bar
- Cnopendata list data of Chinese colleges and Universities
- [UTCTF2020]file header
- 2022年全国最新消防设施操作员(初级消防设施操作员)模拟题及答案
- QT learning 28 toolbar in the main window
猜你喜欢

2022茶艺师(初级)考试题模拟考试题库及在线模拟考试
![[Stanford Jiwang cs144 project] lab4: tcpconnection](/img/fd/704d19287a12290f779cfc223c71c8.png)
[Stanford Jiwang cs144 project] lab4: tcpconnection

Technology cloud report: from robot to Cobot, human-computer integration is creating an era

Figure out the working principle of gpt3

Sign up now | oar hacker marathon phase III, waiting for your challenge

Numbers that appear only once

Problem solving: unable to connect to redis

Open source ecosystem | create a vibrant open source community and jointly build a new open source ecosystem!

PHP exports millions of data

SQL优化的魅力!从 30248s 到 0.001s
随机推荐
IPv4 exercises
【经验分享】如何为visio扩展云服务图标
Qt学习27 应用程序中的主窗口
Zhilian + AV, AITO asked M7 to do more than ideal one
2022茶艺师(初级)考试题模拟考试题库及在线模拟考试
Common validation comments
CTF daily question day43 rsa5
2022焊工(初级)判断题及在线模拟考试
2022 simulated examination question bank and online simulated examination of tea master (primary) examination questions
LeetCode 40:组合总和 II
242. Bipartite graph determination
PHP exports millions of data
大视频文件的缓冲播放原理以及实现
[performance pressure test] how to do a good job of performance pressure test?
Mysql高低版本切换需要修改的配置5-8(此处以aicode为例)
Qt学习28 主窗口中的工具栏
The configuration that needs to be modified when switching between high and low versions of MySQL 5-8 (take aicode as an example here)
Shell 脚本的替换功能实现
Operation suggestions for today's spot Silver
《动手学深度学习》(四) -- 卷积神经网络 CNN