Issues with locking in MySQL

Issues with locking in MySQL

Lock classification:

From the granularity of data operations:

Table lock: When operating, the entire table will be locked. Row lock: When operating, the current operation row will be locked.

According to the type of data operation:

Read lock (shared lock): Multiple read operations can be performed simultaneously on the same data without affecting each other. Write lock (exclusive lock): It blocks other clients from writing until the current operation is completed.

insert image description here


Row table lock features:

insert image description here


MyISAM table locks:

How to add table lock
MyISAM automatically adds read locks to all tables involved before executing a query statement (SELECT).
INSERT, etc.), the write lock will be automatically added to the table involved. This process does not require user intervention. Therefore, users generally do not need to use LOCK directly.
TABLE command explicitly locks a MyISAM table.

insert image description here

In short, read locks block writes but do not block reads. A write lock will block both reading and writing.

In addition, MyISAM's read-write lock scheduling is write-first, which is why MyISAM is not suitable as a storage engine for write-dominant tables. Because other threads cannot perform any operations after the write lock is obtained, a large number of updates will make it difficult for the query to obtain the lock, resulting in permanent blocking.


InnoDB row locks

Introduction to row locks Row lock features: biased towards the InnoDB storage engine, high overhead, slow locking; deadlock may occur; minimum locking granularity, lowest probability of lock conflict, and highest concurrency.
There are three biggest differences between InnoDB and MyISAM: one is that it supports transactions; two is that it uses row-level locks; and three is that it supports foreign keys.

Transactions:
A transaction is a logical processing unit consisting of a group of SQL statements.

Four major characteristics of transactions (ACID):

insert image description here
insert image description here

insert image description here

This is the end of this article about MySQL lock related issues. For more information about MySQL lock issues, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Analysis of MySQL lock wait and deadlock problems
  • In-depth analysis of MySQL lock blocking
  • Summary of MySQL lock knowledge points

<<:  Detailed explanation of the process of building an MQTT server using Docker

>>:  JavaScript implements cool mouse tailing effects

Recommend

JS implements random roll call system

Use JS to implement a random roll call system for...

A brief introduction to JavaScript arrays

Table of contents Introduction to Arrays Array li...

MySQL 5.7.10 Installation Documentation Tutorial

1. Install dependency packages yum -y install gcc...

Example code for implementing card waterfall layout with css3 column

This article introduces the sample code of CSS3 c...

React Fiber structure creation steps

Table of contents React Fiber Creation 1. Before ...

Details of using Vue slot

Table of contents 1. Why use slots? 1.1 slot 1.2 ...

wget downloads the entire website (whole subdirectory) or a specific directory

Use wget command to download the entire subdirect...

Implementation of local migration of docker images

I've been learning Docker recently, and I oft...

MySQL: mysql functions

1. Built-in functions 1. Mathematical functions r...

How to view version information in Linux

How to view version information under Linux, incl...