Determine whether MySQL update will lock the table through examples

Determine whether MySQL update will lock the table through examples

Two cases:

1. With index 2. Without index

Prerequisites:

Method: Use command line to simulate

1. Since MySQL automatically commits transactions by default, you must first check whether your current database has automatically committed transactions.

Command: select @@autocommit;

The results are as follows:

+————–+
| @@autocommit |
+————–+
| 0 |
+————–+

If it is 1, run the command: set autocommit = 0; set to disable automatic commit

2. The current database table format is as follows

tb_user | CREATE TABLE tb_user (
id bigint(20) NOT NULL AUTO_INCREMENT,
name varchar(32) DEFAULT NULL,
phone varchar(11) DEFAULT NULL,
operator varchar(32) DEFAULT NULL,
gmt_create datetime DEFAULT NULL,
gmt_modified datetime DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

Obviously, I didn't add any indexes except the primary key.

Practical example:

1. No Index

Run the command: begin; to start the transaction, and then run the command: update tb_user set phone=11 where name=”c1”; to make the changes. Do not commit the transaction yet.

Open another window and run the command directly: update tb_user set phone=22 where name=”c2”; You will find that the command is stuck. However, when the previous transaction is submitted through commit, the command will run normally and end, indicating that the table is locked.

2. Add an index to the name field

create index index_name on tb_user(name);

Then continue the operation as in step 1, that is, open a transaction and run update tb_user set phone=11 where name=”c1”; do not commit yet

Then run another command update tb_user set phone=22 where name=”c2”; and you will find that the command will not get stuck, indicating that the table is not locked.

But if another update tb_user set phone=22 where name=”c1”; updates the same row, it means the row is locked.

3. Summary

If there is no index, the update will lock the table. If an index is added, the row will be locked.

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • Will Update in a Mysql transaction lock the table?
  • Analysis of the locking mechanism of MySQL database
  • Detailed explanation of mysql deadlock checking and deadlock removal examples
  • The normal method of MySQL deadlock check processing
  • How to query whether the mysql table is locked
  • Pessimistic locking and optimistic locking in MySQL
  • Detailed explanation of the meaning and difference between MySQL row locks and table locks
  • Understanding and application analysis of mysql pessimistic locking and optimistic locking
  • MySQL 8.0.19 supports locking an account after entering an incorrect password three times (example)
  • Summary of MySQL lock related knowledge

<<:  Vue3.0 implements the encapsulation of the drop-down menu

>>:  Idea configures tomcat to start a web project graphic tutorial

Recommend

HTML implements a fixed floating semi-transparent search box on mobile

Question. In the mobile shopping mall system, we ...

MySQL 8.0.18 installation and configuration method graphic tutorial (linux)

This article records the installation and configu...

Detailed steps to install JDK and Tomcat in Linux environment

Table of contents 1. Install JDK Manual Installat...

How to deploy SpringBoot project using Docker

The development of Docker technology provides a m...

Summary of xhtml block level tags

* address - address * blockquote - block quote * c...

Analysis of the implementation process of three modes of VMWare network adapter

Three modes Bridged (bridge mode), NAT (network a...

How to change the root password in MySQL 5.7

Starting from MySQL 5.7, many security updates ha...

Mysql case analysis of transaction isolation level

Table of contents 1. Theory SERIALIZABLE REPEATAB...

How to quickly build a LAMP environment on CentOS platform

This article uses an example to describe how to q...

Detailed tutorial on configuring local yum source in CentOS8

The centos8 distribution is released through the ...

W3C Tutorial (1): Understanding W3C

W3C, an organization founded in 1994, aims to unl...

Node.js uses express-fileupload middleware to upload files

Table of contents Initialize the project Writing ...