Rumah >pangkalan data >tutorial mysql >Bagaimana untuk melaksanakan bacaan yang dihantar dalam mysql

Bagaimana untuk melaksanakan bacaan yang dihantar dalam mysql

下次还敢
下次还敢asal
2024-04-14 18:42:35610semak imbas

Untuk melaksanakan tahap pengasingan komited baca dalam MySQL, anda boleh menetapkan tahap REPEATABLE READ atau READ COMMITTED. BACA BERULANG memastikan bahawa data yang dibaca tidak akan diubah suai semasa transaksi, manakala READ COMMITTED memastikan bahawa data yang dibaca tidak akan diubah suai oleh transaksi yang dilakukan. MySQL melaksanakan tahap pengasingan ini menggunakan MVCC, kunci baris dan mekanisme promosi kunci untuk mengurangkan pertikaian kunci dan meningkatkan prestasi. Untuk menetapkan tahap pengasingan, gunakan arahan berikut: TETAPKAN TAHAP PENGASINGAN TRANSAKSI [BACAAN BOLEH DIULANG | KOMIT BACA

Bagaimana untuk melaksanakan bacaan yang dihantar dalam mysql

Pelaksanaan komited baca MySQL

Tahap pengasingan baca yang dilakukan adalah memastikan pengasingan pangkalan data kandungan tidak akan diubah suai oleh transaksi lain yang sedang berjalan. Dalam MySQL, read committed boleh dicapai dengan menetapkan tahap pengasingan REPEATABLE READ atau READ COMMITTED. . Dalam erti kata lain, selepas transaksi mula membaca data, data tidak akan berubah sehingga ia dilakukan. Tahap pengasingan ini memberikan ketekalan data yang lebih tinggi, tetapi juga boleh menyebabkan masalah pertikaian kunci dan prestasi. REPEATABLE READREAD COMMITTED 隔离级别来实现。

REPEATABLE READ

REPEATABLE READ 隔离级别保证事务在运行期间读取的数据不会被其他事务修改。也就是说,事务在开始读取数据后,直到提交之前,数据不会发生变化。此隔离级别提供了较高的数据一致性,但也可能导致锁争用和性能问题。

READ COMMITTED

READ COMMITTED

READ COMMITTED

READ COMMITTED Tahap pengasingan memastikan bahawa data yang dibaca oleh transaksi tidak akan diubah suai oleh transaksi komited lain. Dengan kata lain, data yang dibaca oleh transaksi mungkin telah diubah suai sebelum transaksi lain dilakukan. Tahap pengasingan ini memberikan perbalahan kunci yang lebih rendah dan prestasi yang lebih baik, tetapi juga boleh menyebabkan isu bacaan yang tidak boleh berulang.

    Butiran pelaksanaan
  • MySQL melaksanakan tahap pengasingan komited baca melalui mekanisme berikut:
  • Multi-version Concurrency Control (MVCC)
  • : MVCC membenarkan urus niaga membaca versi yang berbeza bagi pangkalan data reducing, dengan itu Setiap transaksi mempunyai petikan tempatan sendiri yang mengandungi versi terkini setiap baris dalam pangkalan data.
  • Row Lock
  • : MySQL menggunakan kunci baris untuk menghalang dua transaksi daripada mengubah suai baris yang sama pada masa yang sama. Apabila transaksi membaca baris, ia memperoleh kunci yang dikongsi. Jika transaksi mengubah suai baris, ia memperoleh kunci eksklusif.

Peningkatan kunci: Apabila pemegang kunci kongsi cuba mengubah suai baris, kunci akan dinaik taraf kepada kunci eksklusif. Ini menghalang transaksi lain daripada membaca pengubahsuaian yang telah dilakukan oleh transaksi lain.

Contoh Penggunaan

Tetapkan tahap pengasingan komited baca dalam MySQL: 🎜
<code class="sql">SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;</code>
🎜 atau 🎜
<code class="sql">SET TRANSACTION ISOLATION LEVEL READ COMMITTED;</code>
🎜Cara tepat anda memilih tahap pengasingan anda bergantung pada keperluan khusus dan keperluan prestasi aplikasi anda. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan bacaan yang dihantar dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn