Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 5609|Jawab: 2

MongoDB Melihat dan Membuat Indeks

[Salin tautan]
Diposting pada 11/02/2022 17.46.29 | | | |
Indeks MongoDB

Tanpa indeks, MongoDB harus memindai setiap file dalam koleksi dan memilih catatan yang memenuhi kriteria kueri saat membaca data.

Efisiensi kueri pemindaian set lengkap semacam ini sangat rendah, terutama saat memproses data dalam jumlah besar, kueri dapat memakan waktu puluhan detik atau bahkan menit, yang sangat berakibat fatal bagi kinerja situs web.

Indeks adalah struktur data khusus yang disimpan dalam kumpulan data yang dapat dengan mudah dibaca melalui indeks, dan indeks adalah struktur yang mengurutkan nilai satu atau beberapa kolom dalam tabel database.

Resensi:


Mengkueri rencana eksekusi

Contoh pernyataan:

Tanpa membuat indeks (winningPlan:COLLSCAN), seperti yang ditunjukkan pada gambar di bawah ini:



explain() juga dapat menerima parameter yang berbeda, dan Anda dapat melihat rencana kueri yang lebih rinci dengan mengatur parameter yang berbeda.

Parameter meliputi:queryPlanner (default)、executionStats、allPlansExecution

Jalankan explain("executionStats") dan Anda akan menemukan bahwa ada lebih banyak statistik dalam rencana eksekusi.

Parameterarti
totalKunciDiperiksaJumlah pemindaian indeks
totalDokumenterTerperiksaJumlah pemindaian dokumen
nKembaliJumlah hasil yang ditampilkan
eksekusiTimeMillisEksekusi memakan waktu
eksekusiKeberhasilanApakah eksekusi berhasil

Membuat indeks

MongoDB menggunakan metode createIndex() untuk membuat indeks.

Perhatikan bahwa sebelum versi 3.0.0, metode pembuatan indeks adalah db.collection.ensureIndex(), dan versi yang lebih baru menggunakan metode db.collection.createIndex().

Membuat indeks tunggal


Membuat indeks komposit

Dalam sintaks, nilai kunci adalah bidang indeks yang ingin Anda buat, 1 ditentukan untuk membuat indeks dalam urutan menaik, dan jika Anda ingin membuat indeks dalam urutan menurun, Anda dapat menentukan -1.latar belakang untuk menentukan bahwa indeks dibuat di latar belakang, yaitu, tambahkan parameter opsional "latar belakang". "background" default ke false.

Indeks kueri

Perintahnya adalah sebagai berikut:



Menghapus indeks

Menghapus semua indeks

Hapus indeks yang ditentukan

(Akhir)




Mantan:Cara membatasi pengguna Taiwan untuk mendaftar, memposting informasi sesuka hati, dan meminta saran tentang cara menulis.
Depan:[Pertempuran aktual]. NET/C# mengekspor cache menggunakan kueri fuzzy StackExchange.Redis
 Tuan tanah| Diposting pada 11/02/2022 17.49.16 |
Proses analisis kueri yang lambat:

1. Gunakan log kueri lambat (system.profile) untuk menemukan pernyataan yang melebihi 200 ms

2. Kemudian gunakan .explain() untuk menganalisis jumlah baris yang terpengaruh dan menganalisis mengapa melebihi 200 ms

3. Putuskan apakah Anda perlu menambahkan indeks

Aktifkan kueri lambat:


Parameter:

0: Ditutup, tidak ada data yang dikumpulkan.
1: Kumpulkan data kueri lambat, defaultnya adalah 100 milidetik.
2: Kumpulkan semua data

Tinjau hasilnya:


Catatan: Indeks pada dasarnya dapat dikatakan permanen dalam memori, jika jumlah data mencapai 100 juta, semakin kecil jumlah indeksnya, semakin baik, karena akan menempati memori dalam jumlah besar. Menurut Internet, 1 juta indeks menyumbang sekitar 50 juta memori. Jika 100 juta, maka itu akan menempati memori 5G.

Diposting pada 13/02/2022 16.30.52 |
arif...
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com