cari
Rumahpangkalan datatutorial mysqlApakah konsep log buat semula MySQL

Dalam ciri-ciri ACID urus niaga, atomicity (A), konsistensi (C), dan ketahanan (D) direalisasikan dengan buat asal log dan buat semula log, dan pengasingan (I) direalisasikan dengan kunci + MVCC

buat asal log: Urus niaga belum dilakukan lagi, dan pelaksanaan tidak normal di tengah Anda boleh menggunakan log batal untuk memulihkan data kepada keadaan sebelum pelaksanaan urus niaga untuk memastikan atomicity transaksi

buat semula log: Urus niaga berjaya dilakukan, kerana keperluan untuk mengemas kini data cakera Selepas tempoh masa, jika pengecualian berlaku, anda boleh menggunakan log buat semula untuk melaksanakan semula SQL transaksi ini untuk memastikan ketahanan transaksi ( Selagi komit transaksi berjaya, tidak kira apa kejadian luar biasa yang berlaku, selagi perkhidmatan MySQL berjalan seperti biasa pada masa akan datang, maka data komit terakhir mesti dipulihkan )

1. Konsep log semula

log semula: Ia dipanggil log fizikal dan merekodkan data diubah suai akhir yang disimpan mengikut halaman Halaman data menyimpan secara langsung status akhir data dan digunakan untuk memastikan ketahanan transaksi

Log logik, juga dikenali sebagai log asal, merekodkan kandungan khusus pernyataan SQL yang sepadan. Jika sisipan dilaksanakan sekarang, padam akan dilaksanakan apabila melancarkan semula; jika kemas kini dilaksanakan sekarang, nilai lama asal akan dikemas kini semula

Log buat semula akan diletakkan di bawah /var/lib/mysql secara lalai

Apakah konsep log buat semula MySQL

Log buat semula mula merekodkan apabila transaksi bermula (ia tidak direkodkan apabila transaksi dilakukan, kerana keseluruhan transaksi boleh melakukan banyak operasi. Jika ia direkodkan hanya apabila urus niaga dilakukan, Tulis log buat semula Apabila pengecualian berlaku pada masa ini, log buat semula belum ditulis Sudah terlambat untuk memastikan ketahanan transaksi itu diserahkan. Apabila pengecualian berlaku (seperti kehilangan data semasa proses kegigihan data) kuasa), InnoDB akan menggunakan log semula untuk memulihkan kepada saat sebelum kegagalan kuasa untuk memastikan integriti data

innodb_log_buffer_size lalai kepada 16M, iaitu saiz penimbal log buat semula Ia mula menulis buat semula apabila urus niaga bermula log, jika transaksi agak besar, untuk mengelakkan menghabiskan terlalu banyak cakera IO semasa pelaksanaan transaksi, anda boleh menyediakan cache log buat semula yang agak besar untuk disimpan. cakera IO. Terdapat masa untuk menyegarkan apabila membilas ke cakera Apabila masa dicapai, cakera IO digunakan Jika penimbal agak besar, masa untuk menyegarkan akan dicapai dengan lebih perlahan dan kecekapan akan lebih tinggi.

Apakah konsep log buat semula MySQL

InnoDB mengubah suai data operasi secara langsung Ia sebenarnya hanya mengubah suai data dalam Buffer Pool . InnoDB sentiasa merekodkan dahulu perubahan data dalam Kolam Penampan kepada log buat semula untuk pemulihan data selepas ranap sistem. Rakam log buat semula dahulu, dan kemudian cari peluang untuk menyegarkan semula data kotor secara perlahan dalam Kolam Penampan ke cakera.

Dua fail dalam direktori yang ditentukan oleh innodb_log_group_home_dir: ib_logfile0, ib_logfile1, fail ini dipanggil log buat semula

kolam cache kolam penimbal: boleh menyimpan cache indeks, Cache data , dsb., boleh mempercepatkan membaca dan menulis, mengendalikan halaman data secara langsung, menulis pengubahsuaian log semula, dan walaupun ia selesai, akan ada benang khusus untuk menulis halaman kotor dalam kolam penimbal ke cakera

Saiz lalai kolam penimbal ialah 134M ( MySQL 5.7)

Apakah konsep log buat semula MySQL

Struktur umum adalah seperti yang ditunjukkan dalam rajah:

Apakah konsep log buat semula MySQL

Bacaan transaksi dan pengubahsuaian semuanya mengutamakan operasi cache Data dalam kumpulan. Dalam projek sebenar, mysqld akan dijalankan pada mesin yang berasingan dan boleh memperuntukkan sejumlah besar memori khusus untuk kumpulan penimbal InnoDB untuk mempercepatkan CRUD

2. Cache dan struktur cakera

Apakah konsep log buat semula MySQL

Apabila transaksi dilakukan, operasi pada rajah perhubungan adalah untuk menulis kandungan Penimbal Log InnoDB ke cakera Jika penulisan berjaya, log semula pada cakera akan merekodkan status - commit. jika tidak Jika penulisan berjaya atau selesai, status rekod - sediakan

log juga mungkin mempunyai pengecualian, gangguan bekalan elektrik dan masalah lain semasa proses menulis ke cakera, menyebabkan penulisan log semula tidak sedang diselesaikan (ini Setara dengan urus niaga yang tidak berjaya dilakukan Pada masa ini, MySQL tidak perlu mempertimbangkan integriti urus niaga apabila ia pulih pada masa akan datang, kerana status tidak komit Hanya apabila semuanya ditulis ke cakera adakah ini bermakna log buat semula berjaya ditulis dan status menjadi komit . Selepas status berubah menjadi komit, ciri ACID urus niaga perlu dikekalkan.

Adakah data kotor dalam tinjauan pendapat penimbal (data telah diubah suai) hanya ditulis pada cakera apabila melakukan?

Tidak perlu menunggu komitmen untuk bermula. Jumlah data yang boleh diubah suai oleh urus niaga adalah agak besar, dan kapasiti cache adalah terhad Untuk data yang dicache melalui tinjauan pendapat penimbal, akan ada urutan khusus untuk menyegarkan data pada cakera pada masa yang sesuai bekalan elektrik terputus, apabila MySQL dimulakan, ia akan disegarkan semula mengikut buat semula Data yang direkodkan dalam log dipulihkan.

buat asal log itu sendiri juga direkodkan dalam buat semula log

Log buat asal menyokong pemulangan semula transaksi, dan ia tidak boleh diselesaikan dalam sekelip mata Data pada cakera akhirnya akan diubah suai untuk mengelakkan pengecualian semasa proses pemulangan semula, log buat asal mesti direkodkan dalam buat semula log. Untuk lapisan bawah, selepas operasi berjaya ditulis ke log semula, sama ada transaksi berjaya dilakukan (komit) atau berjaya digulung semula (rollback), ia dianggap berjaya.

Apakah transaksi sebenar melakukan kejayaan?

Daripada membuang semua data ke cakera, log buat semula yang merekodkan operasi lengkap transaksi ditulis daripada penimbal log ke cakera, dan kemudian status data yang diubah suai ditetapkan untuk melakukan Komit transaksi telah berjaya. Walaupun data masih berada dalam tinjauan pendapat penimbal pada masa ini, selagi log ubah semula kami kekal utuh, data itu akan dipulihkan akan ada urutan khusus yang bertanggungjawab untuk menulis data dalam tinjauan pendapat penimbal ke cakera

urus niaga dijalankan Semasa beroperasi, sentiasa tulis log buat semula terlebih dahulu, dan kemudian tulis ke kumpulan penimbal jika transaksi berjaya dilakukan, adalah perlu untuk memastikan bahawa log buat semula direkodkan sepenuhnya pada cakera

Bagi perubahan pada data jadual, halaman data kotor kumpulan penimbal Kami tidak perlu risau sama ada ia disiram ke cakera Selagi log buat semula ditulis sepenuhnya ke cakera , kita boleh menggunakan log buat semula pada bila-bila masa untuk memulihkan status data transaksi yang berjaya dilakukan (Perkara yang paling penting tentang pangkalan data ialah log. bukannya data)

Atas ialah kandungan terperinci Apakah konsep log buat semula MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Peranan MySQL: Pangkalan Data dalam Aplikasi WebPeranan MySQL: Pangkalan Data dalam Aplikasi WebApr 17, 2025 am 12:23 AM

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.

MySQL: Membina pangkalan data pertama andaMySQL: Membina pangkalan data pertama andaApr 17, 2025 am 12:22 AM

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: Pendekatan mesra pemula untuk penyimpanan dataMySQL: Pendekatan mesra pemula untuk penyimpanan dataApr 17, 2025 am 12:21 AM

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.

Adakah MySQL Beginner-mesra? Menilai lengkung pembelajaranAdakah MySQL Beginner-mesra? Menilai lengkung pembelajaranApr 17, 2025 am 12:19 AM

MySQL sesuai untuk pemula kerana: 1) mudah dipasang dan mengkonfigurasi, 2) sumber pembelajaran yang kaya, 3) sintaks SQL intuitif, 4) sokongan alat yang kuat. Walau bagaimanapun, pemula perlu mengatasi cabaran seperti reka bentuk pangkalan data, pengoptimuman pertanyaan, pengurusan keselamatan, dan sandaran data.

Adakah SQL adalah bahasa pengaturcaraan? Menjelaskan istilahAdakah SQL adalah bahasa pengaturcaraan? Menjelaskan istilahApr 17, 2025 am 12:17 AM

Ya, sqlisaprogramminglanguagespecializedfordatamanagement.1) it'sdeclarative, focusingonwhathattoachieverthanhan.2) sqlisesessentialforquerying, memasukkan, mengemas kini, dandeleletingdatainrelationaldatabases.3)

Terangkan sifat asid (atom, konsistensi, pengasingan, ketahanan).Terangkan sifat asid (atom, konsistensi, pengasingan, ketahanan).Apr 16, 2025 am 12:20 AM

Atribut asid termasuk atom, konsistensi, pengasingan dan ketahanan, dan merupakan asas reka bentuk pangkalan data. 1. Atomicity memastikan bahawa urus niaga sama ada berjaya atau gagal sepenuhnya. 2. Konsistensi memastikan pangkalan data tetap konsisten sebelum dan selepas transaksi. 3. Pengasingan memastikan bahawa urus niaga tidak mengganggu satu sama lain. 4. Kegigihan memastikan data disimpan secara kekal selepas penyerahan transaksi.

MySQL: Sistem Pengurusan Pangkalan Data vs Bahasa PengaturcaraanMySQL: Sistem Pengurusan Pangkalan Data vs Bahasa PengaturcaraanApr 16, 2025 am 12:19 AM

MySQL bukan sahaja sistem pengurusan pangkalan data (DBMS) tetapi juga berkait rapat dengan bahasa pengaturcaraan. 1) Sebagai DBMS, MySQL digunakan untuk menyimpan, menyusun dan mengambil data, dan mengoptimumkan indeks dapat meningkatkan prestasi pertanyaan. 2) Menggabungkan SQL dengan bahasa pengaturcaraan, tertanam dalam Python, menggunakan alat ORM seperti SQLalChemy dapat memudahkan operasi. 3) Pengoptimuman prestasi termasuk pengindeksan, pertanyaan, caching, perpustakaan dan bahagian meja dan pengurusan transaksi.

MySQL: Menguruskan data dengan arahan SQLMySQL: Menguruskan data dengan arahan SQLApr 16, 2025 am 12:19 AM

MySQL menggunakan arahan SQL untuk menguruskan data. 1. Perintah asas termasuk pilih, masukkan, kemas kini dan padam. 2. Penggunaan lanjutan melibatkan fungsi gabungan, subquery dan agregat. 3. Kesilapan umum termasuk isu sintaks, logik dan prestasi. 4. Petua Pengoptimuman termasuk menggunakan indeks, mengelakkan Pilih* dan menggunakan had.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa