MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bahaya Membangun Indeks di MongoDB

Indeks adalah bagian penting dari operasi basis data apa pun. Mendefinisikan indeks yang tepat dapat membuat perbedaan besar pada kinerja server database Anda. Namun, membuat indeks di MongoDB memiliki beberapa jebakan yang perlu Anda waspadai untuk operasi sehari-hari Anda. MongoDB pada tingkat tinggi mendukung tiga teknik untuk membangun indeks pada koleksi Anda.

1. Pembuatan Indeks Latar Depan

Bila Anda membuat indeks di latar depan, itu memblokir semua operasi lain di database – pada koleksi besar, ini bisa memakan waktu beberapa jam. Ini menyiratkan bahwa database Anda tidak aktif selama pembuatan indeks. Mengingat bahwa ini adalah mode default membangun indeks, tidak mengherankan bahwa banyak pengembang menembak diri mereka sendiri dengan memicu pembangunan indeks yang tidak disengaja. Sebenarnya tidak ada alasan yang baik untuk memicu pembangunan indeks latar depan di server produksi (kecuali Anda tahu bahwa koleksi tersebut memiliki sejumlah kecil data).

2. Pembuatan Indeks Latar Belakang

Seperti namanya, proses pengindeksan latar belakang membangun indeks di latar belakang tanpa memengaruhi ketersediaan server basis data Anda. Namun, ini masih merupakan operasi intensif sumber daya dan Anda akan melihat penurunan kinerja. Juga karena ini terjadi di latar belakang, pembuatannya bisa memakan waktu lebih lama daripada indeks latar depan. Dalam versi MongoDB sebelumnya (<2.6) ketika Anda melakukan indeks latar belakang yang dibangun di atas set replika utama, itu akan berjalan sebagai "latar depan" membangun di server sekunder, untungnya itu tidak lagi terjadi - itu adalah latar belakang membangun semua node. Jika pembangunan indeks latar belakang terganggu, itu akan dilanjutkan sebagai pembangunan indeks latar depan pada server restart.

3. Pembuatan Indeks Bergulir

Proses pembuatan indeks bergulir membangun indeks hanya pada satu simpul pada satu waktu. Kurang lebih seperti ini:

  1. Memutar node sekunder dari kumpulan replika (Anda dapat melakukannya dengan mengubah port atau memulai ulang dalam mode mandiri).
  2. Buat indeks pada simpul ini di latar depan. Setelah indeks dibuat, putar simpul kembali ke set replika.
  3. Setelah node mengikuti perubahan, lanjutkan ke node berikutnya. Jika node berikutnya adalah node utama, Anda perlu melakukan rs.stepDown() untuk membuatnya menjadi node sekunder.
  4. Bilas dan ulangi.

Detail lebih lanjut dari proses pembuatan indeks ada di dokumentasi MongoDB.

Dengan menggunakan build indeks bergulir, Anda dapat membuat indeks tanpa dampak kinerja yang signifikan untuk aplikasi Anda. Namun ada failover yang terlibat – jadi aplikasi Anda harus dapat menanganinya (yang memang perlu).

Dapatkah Anda melakukan pembangunan indeks bergulir jika Anda tidak memiliki set replika? Sayangnya untuk instans yang berdiri sendiri, satu-satunya opsi adalah “Pembuatan indeks latar belakang”.

The Rolling index build adalah pendekatan favorit kami untuk membangun indeks di ScaleGrid. Kami bahkan menyediakan UI dan memudahkan Anda untuk memulai seluruh proses dari UI kami. Backend kami akan melakukan semua orkestrasi yang diperlukan untuk pembangunan indeks penuh – ini akan memicu server dengan indeks membangun server. Anda hanya perlu menyiapkan bersama kami, lalu arahkan dan klik!

Seperti biasa, jika Anda memiliki pertanyaan lebih lanjut, Anda dapat menghubungi kami di [email protected].


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongod HostnameCanonicalizationWorker error pada OS X

  2. Pengikut - desain basis data mongodb

  3. Peningkatan otomatis di MongoDB untuk menyimpan urutan ID Pengguna Unik

  4. cara mengunduh file yang disimpan di gridFS menggunakan nodeJS

  5. Bagaimana cara kerja contoh penghitungan pesan di Meteor docs?