sql >> Databáze >  >> NoSQL >> MongoDB

Analýza pomalých dotazů v MongoDB

Jsme rádi, že můžeme veřejnosti oznámit dostupnost našeho analyzátoru pomalých dotazů pro MongoDB! Pomocí analyzátoru pomalých dotazů můžete rychle identifikovat pomalé dotazy na kterémkoli z vašich serverů za určité časové období. Ve výchozím nastavení jsou „pomalé dotazy“ definovány jako dotazy, které trvají déle než 100 ms.

Tepelná mapa pomalého dotazu

Tepelná mapa vám poskytuje rychlý vizuální přehled o pomalých dotazech ve vašem systému. Svislá osa grafu je exponenciální čas. To znamená, že čím výše je bublina v grafu, tím pomalejší je dotaz (v řádech velikosti) – sledujte proto bubliny, které jsou trvale v horní části grafu. Můžete také kliknout na bublinu a zobrazit podrobnosti o základním dotazu.

Dotazy stejného typu mají stejnou barvu. To vám umožní snadno identifikovat vzory ve vašich pomalých dotazech. Můžete také vybrat části grafu a přiblížit tak konkrétní časový rozsah.

Např. Ve výše uvedeném příkladu můžete vidět shluk červených teček, který trvá déle než 10 sekund. Můžete také vidět, že provedení úlohy na pozadí, která se spouští jednou za hodinu, trvá 28 sekund. Kliknutím na datový bod získáte skutečný dotaz.

Tabulka dat pomalého dotazu

Tabulka dat pomalých dotazů poskytuje tabulkový pohled na všechna data pomalých dotazů. Tabulky dat zobrazují několik důležitých metrik o vašich pomalých dotazech:

  • Typ – Typ dotazu – dotaz, vložení, aktualizace, odstranění atd
  • Databáze a sbírka – Databáze a kolekce dotazu
  • Dotaz – Skutečný dotaz s odstraněnými parametry dotazu
  • Počet – Počet, kolikrát byl dotaz spuštěn ve vybraném časovém období
  • nNaskenováno – Počet položek zkontrolovaných v indexu + počet objektů zkontrolovaných z kolekce
  • Trvání (ms) – Průměrná doba provádění dotazu v ms
  • Délka odpovědi (bajty) – Průměrná délka odpovědi výsledku dotazu v bajtech
  • nVráceno – Průměrný počet dokumentů vrácených na provedení dotazu
  • Zámek čtení (mikrosekundy) – Průměrná doba uzamčení čtení v mikrosekundách
  • Zámek zápisu (mikrosekundy) – Průměrná doba uzamčení zápisu v mikrosekundách

Tabulku pomalých dotazů můžete seřadit podle kteréhokoli z výše uvedených sloupců, abyste vytvořili zobrazení, které potřebujete. Data dotazu lze také stáhnout do Excelu pro analýzu. Kliknutím na odkaz „Stáhnout data jako csv“ stáhnete data pomalého dotazu a provedete vlastní analýzu v aplikaci Excel.

Abychom mohli snadno identifikovat problémové dotazy, poskytujeme řadu integrovaných zobrazení.

Pomalé dotazy seřazené podle „nejčastějších“

Toto zobrazení představuje (v sestupném pořadí) dotazy, které jsou v systému prováděny nejčastěji. Chcete věnovat zvláštní pozornost hlavním dotazům v seznamu. Pokud je jejich hodnota nScanned vysoká nebo doba trvání je vysoká, musíte pro tento dotaz přidat příslušný index. Tím se sníží počet dokumentů naskenovaných z disku.

Pomalé dotazy seřazené podle „Maximální počet naskenovaných dokumentů/indexů“

Toto zobrazení uvádí (v sestupném pořadí) dotazy, které skenují nejvíce položek rejstříku nebo nejvíce dokumentů v kolekci. Vysoká hodnota „nScanned“ znamená, že nemáte index nebo nemáte správný index. Možná nebude možné přidat index pro každý dotaz v systému – měli byste však zajistit, aby byly všechny vaše vysokofrekvenční dotazy dobře indexovány.

Pomalé dotazy seřazené podle „Nejpomalejšího dotazu“

Toto zobrazení představuje (v sestupném pořadí) dotazy, jejichž provedení trvá maximálně dlouho. Pokud se dotaz spouští velmi zřídka, můžete se rozhodnout, zda jej chcete optimalizovat.

Pomalé dotazy seřazené podle „Maximální počet vrácených dokumentů“

Toto zobrazení představuje (v sestupném pořadí) dotazy, které vracejí nejvíce výsledků. Vrácení velkého množství výsledků často vede k zatížení sítě systému. Měli byste se také ujistit, že vracíte pouze pole, která z dokumentu potřebujete, a ne všechna pole.

Pomalé dotazy seřazené podle „Zámek čtení“

Toto zobrazení představuje (v sestupném pořadí) dotazy, které spotřebovávají maximální čas uzamčení čtení v mikrosekundách. Pokud používáte úložiště WiredTiger, obvykle to není problém, protože WiredTiger využívá zamykání na úrovni dokumentů.

Pomalé dotazy seřazené podle „zámku zápisu“

Toto zobrazení představuje (v sestupném pořadí) dotazy, které spotřebovávají maximální čas uzamčení zápisu v mikrosekundách. Pokud používáte úložiště WiredTiger, obvykle to není problém, protože WiredTiger využívá zamykání na úrovni dokumentů.


  1. DB s nejlepším výkonem vkládání/s?

  2. odstranit _id z výsledku mongo

  3. Více podmínek spojení pomocí operátoru $lookup

  4. Jak definovat TTL pro redis streamy?