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

Apakah buruk mengubah tipe _id di MongoDB menjadi integer?

Tidak, itu tidak buruk sama sekali dan sebenarnya ObjectId bawaan cukup besar dalam indeks jadi jika Anda yakin Anda memiliki sesuatu yang lebih baik maka Anda dipersilakan untuk mengubah nilai default _id bidang untuk apa pun.

Tapi, dan ini adalah tapi yang besar , ada beberapa pertimbangan ketika memutuskan untuk menjauh dari ObjectId yang dirumuskan secara default , terutama saat menggunakan _id penambahan otomatis seperti yang ditunjukkan di sini:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field

Multi threading bukanlah masalah besar karena findAndModify dan kunci atom benar-benar dapat menanganinya, tetapi kemudian Anda baru saja menemukan masalah pertama Anda. findAndModify bukan fungsi tercepat atau teringan dan ada penurunan kinerja yang signifikan yang terlihat saat menggunakannya secara teratur.

Anda juga harus mempertimbangkan overhead untuk melakukan ini sendiri, bahkan tanpa findAndModify . Untuk setiap sisipan, Anda memerlukan kueri tambahan. Bayangkan memiliki id unik yang harus Anda query keunikannya setiap kali Anda ingin memasukkan. Pada akhirnya tingkat penyisipan Anda akan turun menjadi merangkak dan waktu penguncian Anda akan bertambah.

Tentu saja ObjectId benar-benar pandai menjadi unik tanpa harus memeriksa atau merumuskan keunikannya sendiri dengan menyentuh database sebelum penyisipan, sehingga tidak memiliki overhead ini.

Jika Anda masih merasa bilangan bulat _id sesuai dengan skenario Anda, lakukan saja, tetapi ingatlah overhead yang dijelaskan di atas.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb tidak dapat memulai

  2. Dapatkan ID Dokumen yang Terakhir Dimasukkan di MongoDB Dengan Driver Java

  3. Membatasi hasil di MongoDB tetapi masih mendapatkan hitungan penuh?

  4. Bagaimana cara mendapatkan data ReferenceField di mongoengine?

  5. MongoDB - Buat Basis Data