Sebenarnya mudah untuk mendapatkan jawapan dengan menganalisis prinsip. Katakan anda mempunyai timbunan nombor di tangan anda, dari 1 hingga 100, di bawah:
Seorang lelaki datang dan meminta anda nombor, anda memberinya satu, itu tidak menjadi masalah.
Dua orang tiba bersama-sama dan kedua-duanya meminta nombor kepada anda. Perlahan-lahan datang satu persatu, hantar satu demi satu, perlahan tetapi ia akan sampai ke sana
Bagaimana jika 10 orang datang pada masa yang sama dan meminta nombor anda bagaimana dengan 100 orang?
Bayangkan bilangan orang yang datang sebagai permintaan serentak, dan tidak sukar untuk mencari bahawa memperuntukkan nombor dengan cepat telah menjadi halangan. Jadi ID yang meningkat sendiri sebenarnya bukan perkara yang baik untuk RDBMS. Tetapi mujurlah, pangkalan data tradisional berdiri sendiri Mereka hanya menambah kunci kepada diri mereka sendiri dan mengendalikan persaingan dalam ingatan, yang bukan masalah besar. MongoDB ialah pangkalan data yang diedarkan Beberapa mesin perlu menyelaras antara satu sama lain Anda mendapat 1, saya mendapat 2, dan dia mendapat 3. Kunci ini perlu diselaraskan melalui rangkaian, yang sangat tidak cekap. Fikirkan tentang tujuan pengedaran Salah satu daripadanya adalah untuk menambah baik serentak, jadi ID kenaikan automatik dan konkurensi tinggi sebenarnya bertentangan antara satu sama lain, memastikan kenaikan yang betul pasti akan menjejaskan kecekapan. Selain itu, ID yang meningkat sendiri sebenarnya tidak mempunyai banyak kelebihan kecuali ia kelihatan lebih bersih, jadi ia tidak dapat dielakkan ditinggalkan. (Ingat bahawa ObjectID sebenarnya boleh diisih, iaitu susunan masa sisipan)
Secara amnya dalam MongoDB, anda tidak akan menggunakan corak kenaikan automatik untuk medan _id, atau mana-mana medan, kerana ia tidak menskalakan pangkalan data dengan sejumlah besar dokumen. Biasanya nilai lalai ObjectId adalah lebih sesuai untuk _id.
文档上自己说,bukan skala untuk pangkalan data dengan sejumlah besar dokumen,自增的不适合有大数量dokumen的数据库
Sebenarnya mudah untuk mendapatkan jawapan dengan menganalisis prinsip. Katakan anda mempunyai timbunan nombor di tangan anda, dari 1 hingga 100, di bawah:
Seorang lelaki datang dan meminta anda nombor, anda memberinya satu, itu tidak menjadi masalah.
Dua orang tiba bersama-sama dan kedua-duanya meminta nombor kepada anda. Perlahan-lahan datang satu persatu, hantar satu demi satu, perlahan tetapi ia akan sampai ke sana
Bagaimana jika 10 orang datang pada masa yang sama dan meminta nombor anda bagaimana dengan 100 orang?
Bayangkan bilangan orang yang datang sebagai permintaan serentak, dan tidak sukar untuk mencari bahawa memperuntukkan nombor dengan cepat telah menjadi halangan. Jadi ID yang meningkat sendiri sebenarnya bukan perkara yang baik untuk RDBMS. Tetapi mujurlah, pangkalan data tradisional berdiri sendiri Mereka hanya menambah kunci kepada diri mereka sendiri dan mengendalikan persaingan dalam ingatan, yang bukan masalah besar. MongoDB ialah pangkalan data yang diedarkan Beberapa mesin perlu menyelaras antara satu sama lain Anda mendapat 1, saya mendapat 2, dan dia mendapat 3. Kunci ini perlu diselaraskan melalui rangkaian, yang sangat tidak cekap.
Fikirkan tentang tujuan pengedaran Salah satu daripadanya adalah untuk menambah baik serentak, jadi ID kenaikan automatik dan konkurensi tinggi sebenarnya bertentangan antara satu sama lain, memastikan kenaikan yang betul pasti akan menjejaskan kecekapan. Selain itu, ID yang meningkat sendiri sebenarnya tidak mempunyai banyak kelebihan kecuali ia kelihatan lebih bersih, jadi ia tidak dapat dielakkan ditinggalkan. (Ingat bahawa ObjectID sebenarnya boleh diisih, iaitu susunan masa sisipan)
https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field/#considerations
文档上自己说,bukan skala untuk pangkalan data dengan sejumlah besar dokumen,自增的不适合有大数量dokumen的数据库