


Penemuduga: Mari kita bincangkan tentang mekanisme penyerahan dua fasa MySQL.
Artikel ini akan membawa anda memahami mekanisme penyerahan dua fasa MySQL, memperkenalkan log buat semula dan log bin, dan melihat cara mereka bekerjasama untuk menyelesaikan penyerahan dua fasa saya harap ia akan membantu semua orang!
MySQL memastikan konsistensi logik log semula dan log bin melalui mekanisme penyerahan dua peringkat, dengan itu memastikan tiada kehilangan data dan konsistensi data dalam pangkalan data tuan-hamba .
Apabila bercakap tentang penyerahan dua peringkat, kita perlu memperkenalkan log semula dan log sampah terlebih dahulu.
buat semula log
buat semula log ialah log buat semula, iaitu log unik kepada enjin InnoDB (sesetengah penemuduga sering bertanya tentang perkara ini).
Apa yang dilakukan semula log terutamanya?
Ambil pengemaskinian data sebagai contoh Kami tahu bahawa data MySQL disimpan pada cakera Jika setiap kali data dikemas kini, cakera dicari untuk mencari data yang akan dikemas kini dan operasi kemas kini dilakukan. Kos IO akan menjadi sangat tinggi.
Tidak mengapa jika ia adalah pemacu keadaan pepejal, tetapi jika ia adalah pemacu keras mekanikal, prestasi kemas kini MySQL tidak dapat memenuhi keperluan perniagaan kami sama sekali.
Jadi, MySQL menggunakan teknologi yang dipanggil WAL, Write-Ahead Logging.
Apabila mengemas kini data, tulis operasi kemas kini (iaitu, pengubahsuaian yang dibuat pada halaman data tertentu) pada log buat semula dahulu, dan kemudian kemas kini memori ini selesai. MySQL akan mengepam rekod operasi log semula ke cakera apabila pelayan melahu untuk mengekalkan konsistensi data.
Perlu diingat bahawa walaupun log buat semula juga merupakan fail pada cakera, prestasinya sangat tinggi kerana operasi ditulis secara berurutan.
Sudah tentu, log buat semula juga mempunyai had saiz, dan penulisan tanpa had adalah mustahil.
Sebagai contoh, dalam gambar di atas, 4 log buat semula dikonfigurasikan Pos tulis mewakili tempat rekod semasa ditulis dan titik semak mewakili a Apabila ia maju, ia akan terus bergerak ke hadapan dan memadam data untuk memastikan bahawa log buat semula boleh terus ditulis.
Sudah tentu, sebelum memadamkan data, rekod log buat semula akan dipadamkan ke cakera.
Melalui log buat semula, anda boleh memastikan bahawa walaupun MySQL dimulakan semula secara tidak normal, data tidak akan hilang (kerana log buat semula ialah log fizikal dan boleh dimainkan semula ciri ini dipanggil selamat ranap.
log bin
Log bin ialah log yang disediakan oleh Pelayan MySQL, dipanggil log arkib Semua enjin boleh menggunakan log bin.
Apakah perbezaan antara log bin dan log semula?
1. Pembekal kedua-dua log ini adalah berbeza: log bin disediakan oleh Pelayan MySQL, dan log buat semula adalah unik untuk enjin InnoDB.
2. Log buat semula terutamanya merekodkan pengubahsuaian yang dibuat pada halaman data tertentu Log bin merekodkan logik asal pernyataan, seperti mengemas kini medan tertentu pada baris tertentu.
3. Log buat semula ditulis dalam gelung dan data akan ditimpa. Log bin dilampirkan Apabila satu fail penuh, fail seterusnya ditulis.
Penyerahan dua fasa
Selepas memperkenalkan log buat semula dan log tong, mari kita lihat cara mereka bekerjasama untuk melengkapkan penyerahan dua fasa.
Gambar di atas adalah proses mengemas kini data Anda boleh melihat bahawa sebelum mengemas kini sekeping data, MySQL akan memuatkan data terlebih dahulu ke dalam memori, dan kemudian Kemas kini memori dan mula menulis log semula.
Pada masa ini, log buat semula berada dalam keadaan sediakan Selepas log sampah selesai ditulis, dan kemudian transaksi diserahkan, operasi kemas kini rekod ini selesai.
buat semula log sediakan -> tulis log bin ->
Mari kita analisa faedah menggunakan penyerahan dua peringkat.
Senario 1: Apabila log buat semula berada dalam keadaan sediakan, jika menulis ke log sampah gagal, kemas kini gagal pada masa ini, log buat semula tidak mempunyai komit dan log sampah tidak mempunyai rekod status kedua-duanya adalah konsisten dan tiada masalah.
Senario 2: Apabila log buat semula berada dalam keadaan sediakan, menulis log sampah berjaya, tetapi komputer tidak berfungsi dan komit gagal. Pada masa ini, log bin menjana rekod, log buat semula tidak berjaya ditulis dan data tidak konsisten buat sementara waktu.
Tetapi jangan risau, apabila MySQL dimulakan semula, ia akan menyemak rekod dalam keadaan sediakan dalam log buat semula. Dalam log buat semula, medan dipanggil Malah, jika penulisan tidak berjaya, penyerahan akan diserahkan.
Melalui mekanisme ini, konsistensi log buat semula dan log sampah terjamin.
Ringkasan
Sebab mengapa terdapat kedua-dua log semula dan log bin dalam MySQL adalah kerana log bin ialah log arkib yang disediakan oleh Pelayan MySQL, yang dengan sendirinya tidak mengalami ranap- keupayaan selamat. Log buat semula itu sendiri tidak mempunyai keupayaan untuk mengarkibkan Ia adalah log yang ditulis dalam gelung.
MySQL memastikan ketekalan data dengan menyepadukan kedua-dua log ini dan menggunakan mekanisme penyerahan dua peringkat.
Menulis bukan mudah, terima kasih atas suka dan perhatian anda.
[Cadangan berkaitan: tutorial video mysql]
Atas ialah kandungan terperinci Penemuduga: Mari kita bincangkan tentang mekanisme penyerahan dua fasa MySQL.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam pangkalan data MySQL, hubungan antara pengguna dan pangkalan data ditakrifkan oleh kebenaran dan jadual. Pengguna mempunyai nama pengguna dan kata laluan untuk mengakses pangkalan data. Kebenaran diberikan melalui perintah geran, sementara jadual dibuat oleh perintah membuat jadual. Untuk mewujudkan hubungan antara pengguna dan pangkalan data, anda perlu membuat pangkalan data, membuat pengguna, dan kemudian memberikan kebenaran.

MySQL sesuai untuk pemula kerana mudah dipasang, kuat dan mudah untuk menguruskan data. 1. Pemasangan dan konfigurasi mudah, sesuai untuk pelbagai sistem operasi. 2. Menyokong operasi asas seperti membuat pangkalan data dan jadual, memasukkan, menanyakan, mengemas kini dan memadam data. 3. Menyediakan fungsi lanjutan seperti menyertai operasi dan subqueries. 4. Prestasi boleh ditingkatkan melalui pengindeksan, pengoptimuman pertanyaan dan pembahagian jadual. 5. Sokongan sokongan, pemulihan dan langkah keselamatan untuk memastikan keselamatan data dan konsistensi.

Navicat sendiri tidak menyimpan kata laluan pangkalan data, dan hanya boleh mengambil kata laluan yang disulitkan. Penyelesaian: 1. Periksa Pengurus Kata Laluan; 2. Semak fungsi "Ingat Kata Laluan" Navicat; 3. Tetapkan semula kata laluan pangkalan data; 4. Hubungi pentadbir pangkalan data.

1. Gunakan indeks yang betul untuk mempercepatkan pengambilan data dengan mengurangkan jumlah data yang diimbas memilih*frommployeesWherElast_name = 'Smith'; Jika anda melihat lajur jadual beberapa kali, buat indeks untuk lajur tersebut. Jika anda atau aplikasi anda memerlukan data dari pelbagai lajur mengikut kriteria, buat indeks komposit 2. Elakkan pilih * Hanya lajur yang diperlukan, jika anda memilih semua lajur yang tidak diingini, ini hanya akan memakan lebih banyak pelayan dan menyebabkan pelayan melambatkan pada masa yang tinggi atau kekerapan misalnya, jadual anda

Lihat pangkalan data MySQL dengan arahan berikut: Sambungkan ke pelayan: MySQL -U Pengguna Nama -P Kata Laluan Run Show pangkalan data; Perintah untuk mendapatkan semua pangkalan data yang sedia ada Pilih pangkalan data: Gunakan nama pangkalan data; Lihat Jadual: Tunjukkan Jadual; Lihat Struktur Jadual: Huraikan nama jadual; Lihat data: pilih * dari nama jadual;

Buat pangkalan data menggunakan Navicat Premium: Sambungkan ke pelayan pangkalan data dan masukkan parameter sambungan. Klik kanan pada pelayan dan pilih Buat Pangkalan Data. Masukkan nama pangkalan data baru dan set aksara yang ditentukan dan pengumpulan. Sambung ke pangkalan data baru dan buat jadual dalam penyemak imbas objek. Klik kanan di atas meja dan pilih masukkan data untuk memasukkan data.

Menyalin jadual di MySQL memerlukan membuat jadual baru, memasukkan data, menetapkan kunci asing, menyalin indeks, pencetus, prosedur tersimpan, dan fungsi. Langkah -langkah khusus termasuk: mewujudkan jadual baru dengan struktur yang sama. Masukkan data dari jadual asal ke dalam jadual baru. Tetapkan kekangan utama asing yang sama (jika jadual asal mempunyai satu). Buat indeks yang sama. Buat pencetus yang sama (jika jadual asal mempunyai satu). Buat prosedur atau fungsi yang disimpan yang sama (jika jadual asal digunakan).

Navicat untuk MariaDB tidak dapat melihat kata laluan pangkalan data secara langsung kerana kata laluan disimpan dalam bentuk yang disulitkan. Untuk memastikan keselamatan pangkalan data, terdapat tiga cara untuk menetapkan semula kata laluan anda: Tetapkan semula kata laluan anda melalui Navicat dan tetapkan kata laluan yang kompleks. Lihat fail konfigurasi (tidak disyorkan, risiko tinggi). Gunakan alat baris perintah sistem (tidak disyorkan, anda perlu mahir dalam alat baris arahan).
