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

Kasus untuk Indeks Hash MongoDB

Selain indeks skalar (naik, turun), MongoDB juga mendukung indeks 'hash'. Saat Anda menggunakan indeks hash pada bidang, MongoDB menghitung hash dari nilai bidang dan menyimpan hash dalam indeks. Indeks hash hanya mendukung perbandingan kesetaraan dan tidak mendukung kueri rentang, dan biasanya digunakan dalam skenario sharding.

Membuat Indeks Hash MongoDB

Anda dapat menggunakan sintaks berikut untuk membuat indeks hash:

db.collection.ensureIndex({'field':'hashed'});

Anda dapat membuat indeks skalar dan indeks hash pada bidang yang sama.

Sharding MongoDB

Biasanya, sharding MongoDB diimplementasikan menggunakan partisi 'berbasis rentang'. Dalam pendekatan ini, setiap pecahan diberi rentang nilai kunci pecahan. Jika shard key meningkat secara monoton seperti stempel waktu atau objectID, hal ini terkadang dapat menghasilkan shard yang 'panas' karena nilai terbaru selalu berakhir dirutekan ke shard yang sama.

Cara untuk menyiasatinya adalah dengan menggunakan 'partisi berbasis hash'. Sebuah hash dari kunci shard dihitung dan nilai hash ini digunakan untuk merutekan ke shard, bukan nilai sebenarnya. Ini membantu mendistribusikan beban secara merata di semua shard daripada mengirim semua data terbaru ke shard yang sama. Partisi berbasis hash diimplementasikan menggunakan indeks hash pada kunci shard Anda. Untuk informasi lebih lanjut, lihat dokumentasi sharding.

Pro &Kontra Indeks Hash

  • Pro

    Indeks hash cenderung lebih kecil daripada indeks skalar karena hanya hash kunci yang disimpan, bukan kunci lengkap. Misalnya. Dalam pengujian sederhana dengan 100k dokumen, kami menambahkan indeks hash dan skalar pada bidang string – 'fieldName'. Seperti yang ditunjukkan di bawah ini, indeks hash cenderung jauh lebih kecil daripada indeks skalar:

    "indexSizes" : {
            "_id_" : 811008,
            "firstName_1" : 4415488,
            "firstName_hashed" : 1490944
    }
    
  • Kontra

    Tidak mendukung kueri rentang. Jika Anda menjalankan kueri rentang pada indeks hash, ini akan menghasilkan pemindaian indeks.

Indeks Hash MongoDB untuk Pecahan - Pro &KontraKlik Untuk Tweet

Batasan Indeks Berciri

    1. Indeks yang di-hash tidak mendukung array.
    2. Indeks yang di-hash tidak boleh berupa indeks gabungan.
    3. Anda tidak dapat menambahkan batasan unik pada indeks hash.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tidak dapat membuat indeks di mongodb, kunci terlalu besar untuk diindeks

  2. 5 Cara Mendapatkan Milidetik dari Tanggal di MongoDB

  3. Dorong dan Setel Operasi dalam Pembaruan MongoDB yang Sama

  4. PII Masking di MongoDB &DB NoSQL lainnya melalui…

  5. Pencarian peka huruf besar/kecil di Mongo