sql >> Databáze >  >> RDS >> Mysql

MySQL:více tabulek nebo jedna tabulka s mnoha sloupci?

Jakékoli časové informace jsou individuální (každý uživatel má jedno jméno a heslo), pak je pravděpodobně lepší mít jednu tabulku, protože to snižuje počet spojení, které bude databáze muset udělat, aby získala výsledky. Myslím, že některé databáze mají omezený počet sloupců na tabulku, ale v normálních případech bych se tím netrápil a v případě potřeby to můžete kdykoli později rozdělit.

Pokud jsou data jedna ku mnoha (každý uživatel má tisíce řádků informací o využití), měla by být rozdělena do samostatných tabulek, aby se snížilo množství duplicitních dat (duplicitní data plýtvají úložným prostorem, prostorem mezipaměti a znesnadňují údržbu databáze. ).

Na Wikipedii můžete najít článek o normalizaci databáze zajímavé, protože podrobně rozebírá důvody:

Normalizace databáze je proces organizace polí a tabulek relační databáze, aby se minimalizovala redundance a závislost. Normalizace obvykle zahrnuje rozdělení velkých tabulek na menší (a méně redundantní) tabulky a definování vztahů mezi nimi. Cílem je izolovat data tak, aby bylo možné přidávat, mazat a upravovat pole pouze v jedné tabulce a poté je šířit do zbytku databáze prostřednictvím definovaných vztahů.

denormalizace je také třeba si uvědomit, protože existují případy, kdy je opakování dat lepší (protože snižuje množství práce, kterou musí databáze vykonat při čtení dat). Důrazně doporučuji, abyste pro začátek svá data co nejvíce normalizovali a denormalizovali pouze v případě, že si uvědomujete problémy s výkonem u konkrétních dotazů.



  1. Úprava úlohy SQL Server Agent (T-SQL)

  2. Skalární vkládání UDF v SQL Server 2019

  3. Jak vypočítat týdenní aktivní uživatele (WAU) v MySQL

  4. Jak vrátím celočíselné a číselné sloupce z MySQL jako celá a číselná čísla v PHP?