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

Hodnotový model atributu entity – alternativa výkonu?

První , někdy tento model velmi usnadňuje dotazování na data. Před pár dny jsem položil otázku zde a někteří uživatelé navrhovali, proč jsem nezměnil svůj model na formulář 1NF, abych usnadnil dotazování na data. Teprve když si uvědomili, že jsem uvízl v tomto designu, poskytli nějaké odpovědi na otázku. Jde o to, že jsem měl to štěstí, že jsem měl k sečtení pouze 12 sloupců; jinak, kdyby moje tabulka obsahovala 300 sloupců, snad se žádný uživatel neobtěžoval napsat dotaz na tento problém. :-)

Za druhé , někdy je implementace tohoto návrhu snazší kvůli určitým omezením přirozeně uloženým databázemi. Pokud váš meta_key hodnoty obsahují nějaké dlouhé hodnoty větší než 30 znaků, buď musíte hodnoty zkrátit a někde provést mapování, nebo by to byla možná jediná možnost, kterou byste mohli mít.

Konečně , výkon je velmi důležitý; to je pravda. Ale na druhou stranu existují určité techniky, které můžete použít ke zlepšení výkonu; například vytvořením správných indexů, rozdělovacích tabulek a tak dále.

V tomto případě jsou velikosti tabulky velmi malé. Pokud tedy vaše dotazy nejsou příliš komplikované, jako jsou náročné výpočty a komplikovaná spojení a agregace, a pokud aplikace není citlivá na malé časové zlomky, myslím, že byste při přijetí tohoto modelu neutrpěli na výkonu.

Na konci , pokud se stále příliš zajímáte o výkon, navrhoval bych vytvořit oba modely, naplnit je nějakými náhodnými nebo skutečnými daty a analyzovat náklady plánu, abyste zjistili, který model lépe vyhovuje vašim potřebám.



  1. Vyvolá PDO fetch() výjimku při selhání?

  2. Dočasná tabulka serveru SQL zmizí

  3. Zobrazte konkrétní obrázek v závislosti na konkrétním textu v tabulce MySQL pomocí PHP

  4. Několik oblastí vylepšení v PostgreSQL 9.4