Home > Database > Mysql Tutorial > body text

How to solve MySQL phantom reading?

Guanhui
Release: 2020-06-18 15:39:15
Original
3500 people have browsed it

How to solve MySQL phantom reading?

How to solve phantom reading in MySQL?

1. MVCC snapshot, which stores historical data in a snapshot. When a transaction adds or deletes data, it is guaranteed to be invisible to the current transaction;

Most databases Multi-version concurrency control is implemented, and all is achieved by saving data snapshots.

Taking InnoDB as an example, there are two redundant word breaks in each line. One is the created version of the row, and one is the deleted (expired) version of the row. The version number increases automatically with each transaction. Every time a transaction fetches data, it fetches data whose creation version is smaller than the current transaction version, and data whose expired version is larger than the current version.

Ordinary select is snapshot reading.

select * from T where number = 1;
Copy after login

2. "next-key" lock locks the gap between the current data row and the previous data and the next data to ensure that the data read within this range is consistent.

next-key lock contains two parts

  • Record lock (row lock)

  • Gap lock

Record locks are locks added to the index, and gap locks are added between indexes. (Thinking: What will happen if there is no index on the column?)

select * from T where number = 1 for update;
select * from T where number = 1 lock in share mode;
insert
update
delete
Copy after login

Recommended tutorial: "MySQL Tutorial"

The above is the detailed content of How to solve MySQL phantom reading?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!