Artikel ini akan memperkenalkan anda kepada pengetahuan yang berkaitan tentang mongodb dan memperkenalkan enjin storan dalam MongoDB saya harap ia akan membantu anda!
Kali terakhir kita bercakap tentang gugusan mongodb, yang dibahagikan kepada gugus tuan-hamba dan gugusan beling Untuk serpihan dalam gugusan beling, di sini adalah keperluan Beri perhatian kepada perkara berikut dan semak bersama-sama:
tertentu kunci serpihan (titik Kunci shard ialah medan indeks atau medan indeks komposit yang wujud dalam setiap dokumen dalam koleksi) akan menyebabkan semua permintaan baca atau tulis beroperasi pada satu blok data atau shard, yang akan menghasilkan pelayan serpihan tunggal Jika beban terlampau beban, kekunci serpihan yang meningkat sendiri akan menyebabkan masalah penulisan dengan mudah [Disyorkan: Tutorial video MongoDB]
Untuk kunci serpihan berbutir kasar, mungkin menyebabkan banyak dokumen menggunakan kunci serpihan yang sama
Dalam kes ini, dokumen ini tidak boleh dipecahkan kepada berbilang blok data, ini akan mengehadkan keupayaan mongodb untuk mengagihkan data secara sama rata
kunci pecahan dan pertanyaan Tiada korelasi, yang akan menyebabkan prestasi pertanyaan yang lemah
Untuk perkara di atas, kita harus menyedarinya Jika kita menghadapi masalah yang sama dalam kerja sebenar, kita boleh cuba belajar menanganinya
Hari ini kita melihat secara ringkasApakah enjin storan mongodb
Bercakap tentang enjin storan mongodb, kita perlu tahu bahawa ia berada dalam mongodb 3.0 Pada masa itu, konsep enjin storan boleh pasang diperkenalkan
Kini terdapat terutamanya enjin ini:
Apabila enjin storan mula-mula keluar, ia menggunakan enjin storan MMAPV1 secara lalai.
Enjin MMAPV1 , kita mungkin tahu dari namanya Dia menggunakan mmap untuk melakukannya, dan menggunakan prinsip pemetaan memori Linux
Enjin MMAPV1 tidak digunakan sekarang kerana enjin storan WiredTiger lebih baik , sebagai contoh, bandingkan WiredTiger mempunyai kelebihan berikut:
WiredTiger boleh menggunakan lebih baik kuasa pemprosesan sistem berbilang teras
WiredTiger Kebutiran kunci lebih kecil
Enjin MMAPV1 menggunakan kunci aras meja apabila ada operasi serentak pada satu jadual, daya pemprosesan akan terjejas
WiredTiger menggunakan kunci peringkat dokumen, yang meningkatkan konkurensi dan daya pemprosesan
menyediakan algoritma pemampatan , yang boleh mengurangkan kesan ke atas cakera keras dengan ketara
Prinsip penulisan enjin WiredTiger Seperti yang dapat kita lihat daripada rajah di atas, prinsip menulis ke cakera oleh WiredTigerjuga sangat mudah Permintaan aplikasi
, seperti berikut
Seperti yang ditunjukkan dalam gambar di atas, terdapat tambahan
danjournaling buffer
journal 文件
Dalam mongodb 2.4, fungsi log Journaling didayakan secara lalai
Apabila kita memulakan tika mongod , perkhidmatan akan menyemak sama ada data perlu dipulihkanJadi tidak akan ada kehilangan data mongodb yang disebutkan di atas
Selain itu, kita perlu tahu di sini bahawa fungsi pengelogan jurnal Apabilamongodb perlu melakukan operasi tulis, iaitu, apabila menambah, memadam atau mengubah suai, penjurnalan akan menulis log, yang akan menjejaskan prestasi<.>
Tetapiapabila mongodb membaca operasi, ia tidak akan direkodkan dalam cache, jadi ia tidak akan direkodkan dalam log jurnal, jadi operasi baca tidak memberi kesan
Itu sahaja untuk hari ini saya telah belajar apa yang telah saya pelajari, sila betulkan saya
Atas ialah kandungan terperinci Analisis mendalam tentang enjin storan MongoDB (dengan gambarajah skematik). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!