Apakah yang dimaksudkan dengan halaman kotor mysql?

王林
Lepaskan: 2023-05-30 12:01:45
ke hadapan
1184 orang telah melayarinya

Jika kandungan halaman data memori dan halaman data cakera berbeza dalam MySQL, maka halaman memori ini akan 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.

Halaman kotor (halaman memori)

  • Halaman bersih: data dalam memori dan cakera adalah konsisten

  • Halaman kotor: Data dalam memori dan cakera tidak konsisten

Mengapa halaman kotor muncul

Biasanya operasi kemas kini pantas , semua bertulis kepada ingatan 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

Penerangan ringkas tentang mekanisme pengurusan memori

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.

  • Apabila halaman perlu dibaca, halaman percuma akan diperolehi daripada FreeList Selepas membaca data, ia akan diletakkan dalam LRUlist

  • <.>Jika tiada halaman percuma dalam FreeList, maka halaman terakhir dalam senarai LRU akan dihapuskan mengikut algoritma LRU

  • Apabila halaman dalam LRUlist diubah suai, halaman menjadi halaman kotor. Halaman ini juga akan ditambahkan pada FlushList

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

Adakah wajar untuk hanya bergantung pada penimbal untuk pengubahsuaian dan pembacaan data

Jika hanya kawasan cache digunakan untuk pengubahsuaian data dan membaca, sekali pangkalan data Jika mesin ranap, data dalam kawasan cache akan hilang. Oleh itu, MySQL menggunakan log semula yang diperkenalkan sebelum ini untuk mencapai pemulihan data sekiranya berlaku semula yang tidak normal.

Diterangkan dengan cara yang mudah, operasi direkodkan dalam log buat semula sebelum mengemas kini penimbal untuk memastikan sekiranya berlaku semula yang tidak normal, data dalam penimbal masih boleh dipulihkan.

Mengapa halaman kotor mesti dimuat semula

  • Seperti yang dinyatakan di atas, data hanya diletakkan dalam penimbal dan

    akan muncul. Jadi ia perlu disiram ke cakera. 数据库宕机,内存数据丢失

  • Jika log buat semula tidak terhingga besar atau mempunyai banyak fail, akan terdapat sejumlah besar operasi pengubahsuaian dalam sistem Sebaik sahaja sistem mati, masa pemulihan akan menjadi sangat lama .

Jadi secara semula jadi, kita mesti

menyegarkan halaman kotor dalam ingatan ke cakera mengikut peraturan tertentu Dengan operasi penyegaran, saiz penimbal Kedua-dua masalah dan saiz log buat semula boleh diselesaikan.

  • Penimbal tidak perlu tidak terhingga kerana ia boleh diteruskan ke cakera

  • Kerana apabila data dalam log buat semula dikekalkan untuk cakera , bahagian data yang sepadan boleh dikeluarkan, jadi tidak perlu menetapkan log buat semula terlalu besar.

Terdapat empat senario di bawah untuk memberus halaman kotor

tidak ditentukan

Kesan yang akan ditimbulkannya

Jika log buat semula penuh

cuba elakkan

. Jika tidak, kemas kini keseluruhan sistem akan berhenti. redo log 写满, anda mesti menunggu log sepadan dengan 此时写的性能变为 0 sebelum ia boleh dikemas kini Ini akan menyebabkan penyataan sql dilaksanakan dengan sangat perlahan. 脏页同步完成

Atas ialah kandungan terperinci Apakah yang dimaksudkan dengan halaman kotor mysql?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan