Apabila saya terus menggunakan find untuk mengembalikan semua medan, hasilnya adalah seperti berikut, dan masa pertanyaan ialah 155
Jika medan pemulangan terhad, masa pertanyaan akan menjadi lebih lama, masa pertanyaan ialah 251
Kenapa? Jika saya mengehadkan medan yang dikembalikan, bait aksara pertanyaan akan menjadi lebih kecil, bukankah penghantaran harus lebih pantas?
Pelan pelaksanaan yang anda siarkan terutamanya mendedahkan maklumat berikut:
1. Pelan pelaksanaan pertama:
Oleh kerana tiada indeks digunakan, collsscan mendedahkan bahawa ia adalah imbasan koleksi penuh, jadi anda boleh mempertimbangkan untuk membuat indeks
2. Pelan pelaksanaan kedua:
Ia masih merupakan imbasan koleksi penuh, dan dokumen yang memenuhi syarat diimbas ke dalam memori, dan unjuran selesai dalam memori, medan yang ditentukan dipilih dan medan dikembalikan. Nampaknya ini akan memakan lebih banyak masa.
Walaupun hanya medan yang dinyatakan dikembalikan, apabila membaca storan atau mengimbas keseluruhan koleksi, hanya keseluruhan dokumen boleh dikembalikan. Ini mungkin beberapa prinsip asas pangkalan data: membaca dan menulis mengikut dokumen tambahan, beberapa pangkalan data kolumnar disimpan mengikut lajur, iaitu situasi yang anda bayangkan tetapi banyak pangkalan data disimpan mengikut baris atau dokumen .
Jika anda mencipta indeks tertutup pada medan tertentu dan hanya mengembalikan medan yang ditentukan, ini adalah yang paling cekap, kerana hanya mengimbas indeks boleh mengembalikan medan yang ditentukan.
Untuk rujukan.
Suka MongoDB! Berseronoklah!