


Analisis ringkas syot kilat dalam MVCC dan lihat cara syot kilat berfungsi?
Artikel ini akan membawa anda memahami syot kilat dalam MVCC dan melihat cara syot kilat berfungsi dalam MVCC? Semoga ia dapat membantu semua orang!
MVCC
Dalam MySQL (enjin storan innodb), sebenarnya, setiap rekod akan merekodkan operasi rollback pada masa yang sama apabila ia dikemas kini. Nilai terkini pada rekod boleh diperoleh dengan menggulung semula nilai keadaan sebelumnya.
Andaikan nilai ditukar daripada 1 kepada 2, 3 dan 4 dalam urutan, akan terdapat rekod yang serupa dengan yang berikut dalam log putar balik.
Nilai semasa ialah 4, tetapi apabila menanyakan rekod ini, urus niaga bermula pada masa yang berbeza akan mempunyai paparan baca yang berbeza. Seperti yang anda lihat dalam rajah, dalam paparan A, B, dan C, nilai rekod ini masing-masing adalah 1, 2, dan 4 Rekod yang sama boleh wujud dalam berbilang versi dalam sistem, iaitu berbilang-. kawalan konkurensi versi (MVCC) pangkalan data ). Untuk paparan baca A, untuk mendapatkan 1, nilai semasa mesti diperolehi dengan melaksanakan semua operasi rollback dalam rajah.
Bagaimanakah InnoDB mentakrifkan 'snapshot'?
Setiap transaksi dalam InnoDB mempunyai ID transaksi unik, dipanggil id transaksi. Ia digunakan pada sistem urus niaga InnoDB pada permulaan urus niaga, dan meningkat secara ketat mengikut susunan permohonan.
Dan setiap baris data juga mempunyai berbilang versi. Setiap kali transaksi mengemas kini data, versi data baharu akan dijana dan id transaksi akan diberikan kepada ID transaksi versi data ini, direkodkan sebagai trx_id baris. Pada masa yang sama, versi data lama perlu dikekalkan, dan dalam versi data baharu, perlu ada maklumat yang boleh diperoleh secara langsung.
Dalam erti kata lain, satu baris rekod dalam jadual data sebenarnya mungkin mempunyai berbilang versi (baris) dan setiap versi mempunyai trx_id barisnya sendiri.
Mengikut takrifan boleh dibaca berulang, Apabila transaksi bermula, anda boleh melihat hasil semua transaksi yang dilakukan. Tetapi kemudian, semasa urus niaga ini dilaksanakan, kemas kini daripada urus niaga lain tidak dapat dilihat olehnya.
Oleh itu, transaksi hanya perlu mengisytiharkan apabila bermula, "Berdasarkan saat saya mula, jika versi data dijana sebelum saya mula, ia akan dikenali; jika saya mula Jika ia dijana nanti, saya tidak akan mengenalinya. Saya perlu mencari versi sebelumnya." Sudah tentu, jika "versi sebelumnya" tidak kelihatan sama ada, anda perlu terus melihat ke hadapan. Selain itu, jika data dikemas kini oleh transaksi itu sendiri, ia masih perlu mengenalinya.
Dari segi pelaksanaan, InnoDB membina tatasusunan untuk setiap transaksi untuk menyimpan semua ID transaksi yang sedang "aktif" pada masa transaksi dimulakan. "Aktif" bermaksud bahawa ia telah dimulakan tetapi masih belum diserahkan.
Nilai minimum ID transaksi dalam tatasusunan direkodkan sebagai paras air rendah, dan nilai maksimum ID transaksi yang telah dibuat dalam sistem semasa ditambah 1 direkodkan sebagai paras air yang tinggi.
Tatasusunan paparan ini membahagikan semua baris trx_id kepada beberapa situasi berbeza.
Dengan cara ini, untuk saat permulaan transaksi semasa, versi data baris trx_id mempunyai kemungkinan berikut:
Jika ia jatuh di bahagian hijau, ini bermakna versi ini adalah transaksi yang komited atau dijana oleh transaksi semasa itu sendiri, dan data ini boleh dilihat; bahagian, ini bermakna versi ini Ia dijana oleh transaksi yang dimulakan pada masa hadapan dan pastinya tidak kelihatan
Jika ia jatuh di bahagian kuning, ia termasuk dua situasi
- a. Jika baris trx_id berada dalam tatasusunan, ini bermakna versi ini dijana oleh transaksi yang belum diserahkan dan tidak kelihatan b dalam tatasusunan, ini bermakna versi ini adalah transaksi yang telah diserahkan, boleh dilihat.
Kemudian ID transaksi A ialah 100Contohnya:
sesi A memulakan transaksi A. Sebelum transaksi A bermula, terdapat tiga transaksi aktif dalam sistem, dengan ID 90 93 95.
Pada masa ini, tatasusunan pandangan untuk transaksi A adalah seperti ini [90 93 95 100], di mana paras air rendah ialah 90 dan paras air tinggi ialah 100 1= 101;
Kini transaksi A mula membaca data
- Jika anda membaca bahawa ID ialah 104, iaitu lebih besar daripada tanda air tinggi 101, ini bermakna versi ini dijana oleh transaksi yang dimulakan pada masa hadapan dan pastinya tidak kelihatan
- Anda membaca bahawa ID ialah 88, iaitu kurang daripada paras air rendah 90, bermakna versi ini adalah transaksi yang diserahkan atau dijana oleh transaksi semasa itu sendiri
- baca bahawa ID ialah 94, iaitu antara paras air rendah dan masa paras air tinggi, tetapi tidak berada dalam tatasusunan [90 93 95 100], ini bermakna versi ini dijana oleh transaksi yang telah diserahkan dan. kelihatan.
- Saya membaca bahawa ID ialah 93, iaitu antara paras air rendah dan paras air tinggi Tatasusunan [90 93 95 100] menunjukkan bahawa versi ini dijana oleh transaksi yang belum dilakukan. dan tidak kelihatan;
Peraturan penghakiman ini diterjemahkan secara langsung daripada logik kod, tetapi seperti yang anda lihat, ia menyusahkan untuk digunakan untuk keterlihatan analisis daging manusia.
Jadi, izinkan saya menterjemahkannya untuk anda. Untuk versi data, untuk paparan transaksi, selain kemas kininya sendiri sentiasa kelihatan, terdapat tiga situasi:
-
versi tidak komited dan tidak kelihatan; 🎜>
Versi telah diserahkan, tetapi ia telah diserahkan selepas paparan dibuat, jadi ia tidak kelihatan - Versi telah diserahkan, dan ia telah diserahkan sebelum; paparan telah dibuat, jadi ia boleh dilihat.
- [Cadangan berkaitan: tutorial video mysql
Atas ialah kandungan terperinci Analisis ringkas syot kilat dalam MVCC dan lihat cara syot kilat berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

MySQL sesuai untuk pemula untuk mempelajari kemahiran pangkalan data. 1. Pasang alat pelayan dan klien MySQL. 2. Memahami pertanyaan SQL asas, seperti SELECT. 3. Operasi data induk: Buat jadual, masukkan, kemas kini, dan padam data. 4. Belajar Kemahiran Lanjutan: Fungsi Subquery dan Window. 5. Debugging dan Pengoptimuman: Semak sintaks, gunakan indeks, elakkan pilih*, dan gunakan had.

MySQL dengan cekap menguruskan data berstruktur melalui struktur jadual dan pertanyaan SQL, dan melaksanakan hubungan antara meja melalui kunci asing. 1. Tentukan format data dan taip apabila membuat jadual. 2. Gunakan kunci asing untuk mewujudkan hubungan antara jadual. 3. Meningkatkan prestasi melalui pengindeksan dan pengoptimuman pertanyaan. 4. Secara kerap sandaran dan memantau pangkalan data untuk memastikan pengoptimuman keselamatan data dan prestasi.

MySQL adalah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas dalam pembangunan web. Ciri -ciri utamanya termasuk: 1. Menyokong pelbagai enjin penyimpanan, seperti InnoDB dan Myisam, sesuai untuk senario yang berbeza; 2. Menyediakan fungsi replikasi master-hamba untuk memudahkan pengimbangan beban dan sandaran data; 3. Meningkatkan kecekapan pertanyaan melalui pengoptimuman pertanyaan dan penggunaan indeks.

SQL digunakan untuk berinteraksi dengan pangkalan data MySQL untuk merealisasikan penambahan data, penghapusan, pengubahsuaian, pemeriksaan dan reka bentuk pangkalan data. 1) SQL Melaksanakan operasi data melalui Pilih, Masukkan, Kemas kini, Padam Penyataan; 2) Gunakan pernyataan membuat, mengubah, drop untuk reka bentuk dan pengurusan pangkalan data; 3) Pertanyaan kompleks dan analisis data dilaksanakan melalui SQL untuk meningkatkan kecekapan membuat keputusan perniagaan.

Operasi asas MySQL termasuk membuat pangkalan data, jadual, dan menggunakan SQL untuk melakukan operasi CRUD pada data. 1. Buat pangkalan data: createdatabasemy_first_db; 2. Buat Jadual: CreateTableBooks (Idintauto_IncrementPrimaryKey, Titlevarchar (100) NotNull, Authorvarchar (100) NotNull, Published_yearint); 3. Masukkan Data: InsertIntoBooks (Tajuk, Pengarang, Published_year) VA

Peranan utama MySQL dalam aplikasi web adalah untuk menyimpan dan mengurus data. 1.MYSQL dengan cekap memproses maklumat pengguna, katalog produk, rekod urus niaga dan data lain. 2. Melalui pertanyaan SQL, pemaju boleh mengekstrak maklumat dari pangkalan data untuk menghasilkan kandungan dinamik. 3.MYSQL berfungsi berdasarkan model klien-pelayan untuk memastikan kelajuan pertanyaan yang boleh diterima.

Langkah -langkah untuk membina pangkalan data MySQL termasuk: 1. Buat pangkalan data dan jadual, 2. Masukkan data, dan 3. Pertama, gunakan pernyataan CreatedataBase dan createtable untuk membuat pangkalan data dan jadual, kemudian gunakan pernyataan InsertInto untuk memasukkan data, dan akhirnya gunakan pernyataan PILIH untuk menanyakan data.

MySQL sesuai untuk pemula kerana mudah digunakan dan berkuasa. 1.MYSQL adalah pangkalan data relasi, dan menggunakan SQL untuk operasi CRUD. 2. Ia mudah dipasang dan memerlukan kata laluan pengguna root untuk dikonfigurasi. 3. Gunakan Masukkan, Kemas kini, Padam, dan Pilih untuk Melaksanakan Operasi Data. 4. Orderby, di mana dan menyertai boleh digunakan untuk pertanyaan yang kompleks. 5. Debugging memerlukan memeriksa sintaks dan gunakan Jelaskan untuk menganalisis pertanyaan. 6. Cadangan pengoptimuman termasuk menggunakan indeks, memilih jenis data yang betul dan tabiat pengaturcaraan yang baik.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).