Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Pole v PostgreSQL

Tomáš Vondra aura:87
10. 9. 2009 22:03

Re: Polia ako sucast

celé vlákno

No, s tím že pole je super náhrada za vazební tabulku v případě M:N vazeb si dovolím zásadně nesouhlasit. Už to že na tom nelze definovat standardní constraint je zásadní chyba – nevím jak Vám, ale mne na konzistenci dat docela záleží. Nechci trávit hodiny opravami konzistencí které vznikly „příliš chytrým řešením.“

A co se rychlosti týká, velmi výrazně závisí na použití. Beru že pokud potřebujete načíst tu hlavní tabulku a jenom „sem tam“ nějaké závislé záznamy (na základě ID z pole v řádku hlavní tabulky), tak to může být rychlejší. Ale jakmile procento načítaných záznamů vzroste nad určitou mez (a to v řádu jednotek procent), tak to bude výrazně pomalejší než využití JOINu přes vazební tabulku.

A to z toho prostého důvodu že zatímco v případě použití pole vlastně simulujete „nested loop“ join (a tedy náhodný přístup), PostgreSQL může zvolit optimální způsob joinování těch tabulek.

Nehledě na to že pokud potřebujete v té hlavní tabulce vyhledávat podle těch podřízených záznamů, tak je to úplně v háji …