Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 5609|Yanıt: 2

MongoDB İndeksleri İzleme ve Oluşturma

[Bağlantıyı kopyala]
Yayınlandı 11.02.2022 17:46:29 | | | |
MongoDB indeksi

İndeksler olmadan, MongoDB koleksiyondaki her dosyayı taramak ve veri okurken sorgu kriterlerine uygun kayıtları seçmek zorunda kalır.

Tam seti tarama gibi bu tür sorgu verimliliği çok düşüktür, özellikle büyük miktarda veri işlendiğinde, sorgu onlarca saniye hatta dakikalar sürebilir ve bu da web sitesinin performansı için çok ölümcül olur.

İndeksler, bir indeks üzerinden kolayca okunabilen veri koleksiyonunda saklanan özel veri yapılarıdır ve indeksler, bir veritabanı tablosunda bir veya daha fazla sütunun değerlerini sıralayan bir yapıdır.

Eleştiri:

MongoDB ortak sorgu komutları
https://www.itsvse.com/thread-10169-1-1.html

Yürütme planını sorgulayın

Örnek ifadeler:

Bir endeks oluşturmadan (winningPlan:COLLSCAN), aşağıdaki şekilde gösterildiği gibi:



explain() fonksiyonu ayrıca farklı parametreler alabilir ve farklı parametreler ayarlayarak daha ayrıntılı bir sorgu planı görebilirsiniz.

Parametreler şunları içerir:queryPlanner (default)、executionStats、allPlansExecution

Execute explain("executionStats") ve uygulama planında daha fazla istatistik olduğunu göreceksiniz.

parametreanlam
totalKeysExaminedİndeks tarama sayısı
totalDocsExaminedBelge tarama sayısı
nGeri döndüGeri dönen sonuç sayısı
icraTimeMillisUygulama zaman alıcıdır
Başarıİndamın başarılı olup olmadığı

Bir indeks oluşturun

MongoDB, indeksler oluşturmak için createIndex() yöntemini kullanır.

Sürüm 3.0.0'dan önce indeks oluşturma yöntemi db.collection.ensureIndex() idi ve sonraki sürümler db.collection.createIndex() yöntemini kullandı.

Tek bir indeks oluşturun


Bileşik bir indeks oluşturun

Sözdiziminde, anahtar değer oluşturmak istediğiniz indeks alanıdır, 1 ise artan sırayla bir indeks oluşturmak için belirtilir ve eğer azalan sırayla bir indeks oluşturmak isterseniz -1 belirtebilirsiniz.arka planda dizinlerin oluşturulduğunu belirtmek için arka planyani, "arka plan" isteğe bağlı parametresini ekleyin. "arka plan" varsayılan olarak yanlış.

Sorgu indeksleri

Komut şöyledir:



İndeksin silinmesi

Tüm indeksleri sil

Belirtilen indeks silin

(Son)




Önceki:Tayvanlı kullanıcıların kayıt olmasını nasıl kısıtlayabiliriz, istedikleri zaman bilgi paylaşır ve nasıl yazacakları konusunda tavsiye isterler.
Önümüzdeki:[Gerçek dövüş]. NET/C#, önbelleği StackExchange ile dışa aktarır. Bulanık sorgu
 Ev sahibi| Yayınlandı 11.02.2022 17:49:16 |
Yavaş sorgu analizi süreci:

1. 200ms'yi aşan ifadeleri bulmak için yavaş sorgu günlüğü (system.profile) kullanın

2. Sonra .explain() kullanarak etkilenen satır sayısını analiz edin ve neden 200ms'yi aştığını analiz edin

3. Bir indeks eklemeniz gerekip gerekmediğine karar verin

Yavaş sorguyu etkinleştirin:


Parametre:

0: Kapalı, veri toplanmıyor.
1: Yavaş sorgu verisi toplayın, varsayılan süre 100 milisaniyedir.
2: Tüm verileri topla

Sonuçları gözden geçirin:


Not: İndeksler temelde kalıcı olarak bellekte kalmıştır; veri miktarı 100 milyona ulaşırsa, indeks sayısı ne kadar az olursa o kadar iyidir, çünkü büyük bir bellek kaplar. İnternet'e göre, 1 milyon endeks yaklaşık 50M belleğe sahip. Eğer 100 milyonsa, 5G belleği kaplar.

Yayınlandı 13.02.2022 16:30:52 |
Öğren...
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com