sql >> Databáze >  >> RDS >> PostgreSQL

Výkon databáze:filtrování podle sloupce vs. samostatná tabulka

Toto je běžný problém při návrhu databáze:Otázka, zda oddělit nebo „archivovat“ záznamy, které již nejsou „aktivní“.

Nejběžnější přístupy jsou:

  • Vše v jedné tabulce, podle potřeby označte objednávky jako „dokončené“. Klady:Nejjednodušší řešení (jak kódově, tak strukturně), dobrá flexibilita (např. snadné „oživení“ objednávek). Nevýhody:Tabulky mohou být poměrně velké, problém jak pro dotazy, tak pro např. zálohy.
  • Archivujte staré věci do samostatné tabulky. Řeší problémy z prvního přístupu za cenu větší složitosti.
  • Používejte tabulku s rozdělením podle hodnot. To znamená, že logicky (pro aplikaci) je vše v jedné tabulce, ale v zákulisí DBMS ukládá věci do samostatných oblastí v závislosti na hodnotě (hodnotách) v některých sloupcích. Pro rozdělení byste pravděpodobně použili sloupec "kompletní" nebo "datum dokončení objednávky".

Poslední přístup kombinuje dobré části prvních dvou, ale potřebuje podporu v DBMS a je složitější na nastavení.

Poznámka:

Tabulky, které ukládají pouze „archivovaná“ data, se běžně označují jako „archivační tabulky“. Některé DBMS dokonce poskytují speciální moduly pro ukládání těchto tabulek (např. MySQL), které jsou optimalizovány tak, aby umožňovaly rychlé vyhledávání a dobrou efektivitu ukládání za cenu pomalých změn/vkládání.



  1. Vrátit dynamickou sadu sloupců

  2. Hledání více čísel v poli více čísel

  3. Jak odstranit špatné znaky, které nejsou vhodné pro kódování utf8 v MySQL?

  4. Uživatelský přístup k MySQL – specifické pro tabulku