MongoDB COLLSCAN Etkisi

`COLLSCAN` planlarını sorgu amacı ve koleksiyon boyutuyla birlikte değerlendirin. Tekrarlayan taramaları sürekli izleyin.

2026-09-30 · 2 dakika okuma

Problem neden önemlidir?

Büyük koleksiyonlarda tekrarlayan COLLSCAN, CPU ve depolama okumasını artırabilir. Küçük koleksiyon veya tüm veriyi isteyen sorgularda koleksiyon taraması bazen makul olabilir.

Nasıl teşhis edilir?

Temsilî sorgunun winningPlan ağacında COLLSCAN olup olmadığını ve yürütme sayılarını inceleyin. Sonucu koleksiyon boyutu, seçicilik ve çağrı sıklığıyla birlikte değerlendirin.

Örnek sorgu veri değiştirmez ve yalnızca sınırlı sonuç ister. Seçicilik üretim dağılımına göre farklı olabileceğinden gerçek şekil kullanılmalıdır.

db.orders.explain("executionStats").find({status: "pending"}).limit(20)

Güvenli çözüm yaklaşımı

Sorgu sık ve seçiciyse uygun indeks adayını test edin. Seyrek yönetim sorguları için indeks eklemenin yazma ve disk maliyetini ayrıca hesaba katın.

Sürekli monitoring neden gerekir?

Sürekli izleme, dağıtım sonrası ortaya çıkan yeni koleksiyon taramalarını erken yakalar. moon düşük ek yükle izleyip Slack, PagerDuty veya webhook uyarıları sağlayabilir.

Sık sorulan sorular

Her COLLSCAN için indeks oluşturulmalı mıdır?

Hayır, tarama maliyeti sorgu sıklığına ve koleksiyon boyutuna bağlıdır. Yeni indeksin yazma ve depolama maliyeti de ölçülmelidir.

moon bu konuda nasıl yardımcı olur?

moon, SQL Server, PostgreSQL ve MongoDB sinyallerini sürekli izleyerek problemi anlık bir kontrolden ziyade zaman içindeki davranışıyla değerlendirmeye yardımcı olur.