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

Dampak kinerja tipe data indeks di MongoDB?

Persyaratan penyimpanan nilai integer lebih kecil, tetapi tentu saja, tidak terlalu signifikan. Algoritme pengurutan/pengindeksan untuk suatu angka akan sedikit lebih cepat dari string biasanya, tetapi perbedaannya akan sangat kecil karena string juga sangat pendek.

Saya tidak mengharapkan perbedaan kinerja yang menarik antara keduanya. Jika Anda berencana menyimpan alamat IPV6, masalahnya adalah BSON (http://bsonspec.org/ #/spesifikasi ) tidak memiliki tipe data sederhana untuk menyimpan angka 16 byte, jadi tidak selalu cocok untuk menyimpan sebagai angka saja.

Pada akhirnya, saya mungkin hanya akan menggunakan string jika Anda ingin menghindari terjemahan dari penyimpanan ke layar, atau jika Anda ingin membuat kueri lebih alami untuk ditulis bagi sebagian besar dari kita :) :

db.ips.find({addr: "192.168.1.1"})

Jika menggunakan string, saya juga menyarankan Anda mempertimbangkan untuk menyimpan sebagai string format tetap seperti 192.168.001.001 jika Anda ingin melakukan pencarian yang lebih kompleks, seperti pencarian rentang. Karena string yang disimpan dengan format tetap yang konsisten akan diurutkan secara alami, Anda dapat menggunakannya dengan lebih banyak cara daripada yang dapat Anda lakukan. Jika rentang tidak penting, Anda tidak perlu menyimpan dengan cara ini.

Dengan format tetap, Anda dapat melakukan kueri seperti:

db.ips.find({ addr: {
                 $gte: "192.168.000.000",
                 $lte: "192.168.000.255" } })

Itu akan menemukan semua alamat IP antara (inklusif) 192.168.0.0 dan 192.168.0.255 .

Idealnya, Anda akan memiliki indeks di lapangan dengan cara apa pun:

db.ips.ensureIndex({ addr: 1 })



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Tidak peka huruf besar kecil dan tidak peka aksen

  2. Mengapa nama kunci disimpan dalam dokumen di MongodDB

  3. Bagaimana menghubungkan php7 dengan mongoDB

  4. Kesalahan Janji Luwak

  5. MongoDB Menghitung Nilai dari Dua Array, Urutkan dan Batas