当前位置:网站首页>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;
边栏推荐
- Thinkcmf6.0安装教程
- Solve could not find or load the QT platform plugin "xcb" in "
- Route jump in wechat applet
- Qt学习26 布局管理综合实例
- Solution: could not find kf5 (missing: coreaddons dbusaddons doctools xmlgui)
- Weibo publishing cases
- [guess-ctf2019] fake compressed packets
- [OBS] win capture requires winrt
- [Stanford Jiwang cs144 project] lab4: tcpconnection
- 探索Cassandra的去中心化分布式架构
猜你喜欢
随机推荐
今日现货白银操作建议
解决:Could NOT find KF5 (missing: CoreAddons DBusAddons DocTools XmlGui)
快速使用 Jacoco 代码覆盖率统计
3D reconstruction - stereo correction
A bit of knowledge - about Apple Certified MFI
Six methods of flattening arrays with JS
Leanote private cloud note building
大视频文件的缓冲播放原理以及实现
[guess-ctf2019] fake compressed packets
242. Bipartite graph determination
Zhilian + AV, AITO asked M7 to do more than ideal one
Ansible
Pytorch parameter initialization
Hands on deep learning (IV) -- convolutional neural network CNN
php导出百万数据
json 数据展平pd.json_normalize
IO stream file
Solve could not find or load the QT platform plugin "xcb" in "
What is the interval in gatk4??
[performance pressure test] how to do a good job of performance pressure test?