Rumah >pangkalan data >tutorial mysql >Apakah halaman kotor mysql?
Dalam mysql, apabila kandungan halaman data memori dan halaman data cakera tidak konsisten, halaman memori dipanggil halaman kotor. Senario untuk mengepam halaman kotor: 1. Apabila log buat semula penuh, MySQL akan menggantung semua operasi kemas kini dan menyegerakkan halaman kotor yang sepadan dengan bahagian log ini ke cakera 2. Apabila memori sistem tidak mencukupi, beberapa halaman data memerlukan untuk dihapuskan. Jika halaman kotor adalah halaman kotor, anda mesti menyegerakkan halaman kotor ke cakera 3. MySQL berfikir bahawa apabila sistem melahu, ia akan menyegerakkan data memori ke cakera apabila ada peluang; . Tiada masalah prestasi dalam kes ini.
Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.
Biasanya operasi kemas kini pantas ditulis ke memori dan log.
Ia tidak 不会马上同步
pergi ke halaman data cakera Pada masa ini, kandungan halaman data memori dan halaman data cakera tidak konsisten, yang kami panggil 脏页
.
Ini melibatkan mekanisme pengurusan memori mysql
Penimbal mengandungi tiga kategori senarai ini. Mereka ialah: LRUList
, FreeList
, FlushList
.
Apabila pangkalan data baru sahaja dimulakan, 没有数据页
berada dalam senarai LRU. FreeList menyimpan halaman percuma.
Nota: Pada masa ini, halaman ini berada dalam LRUlist dan FlushList.
Ringkasan: LRUList (urus halaman yang telah dibaca) dan FreeList (urus halaman percuma) digunakan untuk mengurus ketersediaan halaman (uruskan halaman kotor) digunakan untuk mengurus muat semula halaman kotor
Semasa proses menyegerakkan data halaman kotor ke cakera, jika pernyataan SQL dilaksanakan pada halaman data cakera. Kelajuan pelaksanaan akan menjadi perlahan
Jika pengubahsuaian dan bacaan data hanya bergantung pada penimbal memori, maka sekali Jika pangkalan data turun, data dalam ingatan akan hilang. Oleh itu, MySQL menggunakan log buat semula yang dinyatakan sebelum ini untuk mencapai pemulihan data selepas dimulakan semula yang tidak normal.
Ringkasnya, sebelum mengemas kini penimbal, tulis log buat semula terlebih dahulu untuk memastikan data dalam penimbal boleh dipulihkan seperti biasa selepas permulaan semula yang tidak normal.
数据库宕机,内存数据丢失
akan muncul. Jadi ia perlu disiram ke cakera. Jadi secara semula jadi, kita mesti menyegarkan semula halaman kotor dalam memori ke cakera mengikut peraturan tertentu Dengan operasi penyegaran, masalah saiz penimbal dan buat semula Masalah log saiz boleh diselesaikan.
Apabila redo log 写满
, mysql akan 暂停所有更新
beroperasi dan menyegerak Bahagian log ini sepadan dengan 脏页同步到磁盘
.
Apabila sistem 内存不足
, 淘汰
sebahagian daripada halaman data diperlukan. Jika 脏页
dihapuskan, 先将脏页同步到磁盘
diperlukan.
MySQL berpendapat bahawa apabila sistem adalah 空闲
, ia akan 同步
memindahkan data memori ke cakera apabila tiada masalah prestasi dalam kes ini.
MySQL 正常关闭
, MySQL akan memuat naik 内存的脏页都同步到磁盘
, supaya apabila MySQL bermula, ia boleh membaca data terus dari cakera, dan kelajuan permulaan akan menjadi sangat pantas. Tiada masalah prestasi dengan ini.
Jika log buat semula penuh
Cuba elakkan ia redo log 写满
. Jika tidak, kemas kini keseluruhan sistem akan berhenti. 此时写的性能变为 0
, anda mesti menunggu log sepadan dengan 脏页同步完成
sebelum ia boleh dikemas kini Ini akan menyebabkan penyataan sql dilaksanakan dengan sangat perlahan.
[Cadangan berkaitan: tutorial video mysql]
Atas ialah kandungan terperinci Apakah halaman kotor mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!