sql >> Databáze >  >> RDS >> Sqlserver

Databáze, která zvládne více než 500 milionů řádků

MSSQL zvládne tolik řádků v pohodě. Doba dotazu je zcela závislá na mnohem více faktorech než jen na jednoduchém počtu řádků.

Například to bude záviset na:

  1. kolik spojení provede tyto dotazy
  2. jak dobře jsou vaše indexy nastaveny
  3. kolik paměti je ve stroji
  4. rychlost a počet procesorů
  5. typ a rychlost vřetena pevných disků
  6. velikost řádku/množství dat vrácených v dotazu
  7. Rychlost/latence síťového rozhraní

Je velmi snadné mít malou (méně než 10 000 řádků) tabulku, jejíž provedení dotazu by trvalo několik minut. Například pomocí mnoha spojení, funkcí v klauzuli where a nulových indexů na procesoru Atom s 512 MB celkové paměti RAM.;)

Dá to trochu víc práce, abyste se ujistili, že všechny vaše indexy a vztahy s cizími klíči jsou dobré, že vaše dotazy jsou optimalizovány tak, aby eliminovaly zbytečná volání funkcí a vrátily pouze data, která skutečně potřebujete. Také budete potřebovat rychlý hardware.

Vše závisí na tom, kolik peněz chcete utratit, na kvalitě vývojářského týmu a na velikosti datových řádků, se kterými máte co do činění.

AKTUALIZACE Aktualizace kvůli změnám v otázce.

Množství informací zde stále nestačí na to, abychom dali reálnou odpověď. Budete to muset jen otestovat a podle potřeby upravit návrh databáze a hardware.

Například bych mohl velmi snadno mít 1 miliardu řádků v tabulce na počítači s těmito specifikacemi a spustit dotaz „select top(1) id from tableA (nolock)“ a získat odpověď v milisekundách. Stejným způsobem můžete provést dotaz „vybrat * z tabulky“ a chvíli to trvá, protože ačkoli byl dotaz proveden rychle, přenos všech těchto dat po drátě chvíli trvá.

Jde o to, že musíte testovat. Což znamená, nastavit server, vytvořit některé z vašich tabulek a naplnit je. Pak musíte projít laděním výkonu, aby byly vaše dotazy a indexy správné. V rámci ladění výkonu odhalíte nejen to, jak je potřeba restrukturalizovat dotazy, ale také přesně to, jaké části stroje by mohly být potřeba vyměnit (tj.:disk, více RAM, cpu atd.) na základě zámku. a typy čekání.

Vřele bych vám doporučil najmout (nebo uzavřít smlouvu) jednoho nebo dva DBA, aby to udělali za vás.



  1. SQLite - Pusťte tabulku

  2. Jak vypočítat konverzní poměr v MySQL?

  3. Nejlepší způsoby, jak vytvořit zálohy pro offline aplikace?

  4. mysql - vytvoření mechanismu podobného sekvencím Oracle