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

Perbedaan kinerja Mongodb antara indeks Hash dan Ascending (Ada alasan untuk tidak menggunakan hash di bidang yang tidak diurutkan?)

Mengingat bidang itu key diindeks dalam kedua kasus, indeks kompleksitas mencari sendiri akan sangat mirip. Sebagai nilai a akan menjadi di-hash , dan disimpan di pohon indeks.

Jika kami mencari biaya kinerja keseluruhan, versi hash akan dikenakan biaya tambahan (dapat diabaikan) untuk hashing nilai a sebelum mencocokkan nilai di pohon indeks. Lihat juga mongo/db/index /hash_access_method.h

Selain itu, indeks hash tidak akan dapat menggunakan kompresi awalan indeks ( WiredTiger) . Kompresi awalan indeks sangat efektif untuk beberapa kumpulan data, seperti yang memiliki kardinalitas rendah (misalnya, negara), atau yang memiliki nilai berulang, seperti nomor telepon, kode jaminan sosial, dan koordinat geografis. Ini sangat efektif untuk indeks gabungan , di mana bidang pertama diulang dengan semua nilai unik bidang kedua.

Umumnya tidak ada alasan untuk hash nilai non-rentang. Untuk memilih kunci pecahan, pertimbangkan kardinalitas , frekuensi , dan tingkat perubahan dari nilainya.

Indeks hash biasanya digunakan untuk kasus tertentu sharding . Saat kunci shard nilainya adalah meningkat/menurun secara monoton nilai, distribusi data kemungkinan akan masuk ke satu shard saja. Di sinilah kunci pecahan hash akan dapat meningkatkan distribusi penulisan. Ini adalah pertukaran kecil untuk sangat meningkatkan cluster sharding Anda. Lihat juga Hash vs Ranged Sharding .

Apakah itu layak, tergantung pada kasus penggunaan. Nilai hash khusus berarti bahwa setiap kueri untuk nilai hash harus melalui kode hashing khusus yaitu application.

Keuntungan menggunakan fungsi hash bawaan adalah bahwa MongoDB secara otomatis menghitung hash saat menyelesaikan kueri menggunakan indeks hash. Oleh karena itu, aplikasi tidak perlu menghitung hash.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Batas kedalaman bidang Objek bersarang MongoDB

  2. Bagaimana cara mengatur pengaturan proyek Visual Studio dengan mongo-cxx-driver?

  3. Perbedaan antara mayoritas dan dapat dilinierkan

  4. Performa MongoDB - memiliki banyak database

  5. Rekor terbaru berdasarkan tanggal untuk setiap item grup mongodb