sql >> Databasteknik >  >> RDS >> PostgreSQL

Hämtar du rader från flera tabeller med UNION ALL eller använder du en tabell i produktion?

Generellt sett tycker jag att UNION används i stor utsträckning föreslår dålig databasdesign. Det finns fall där UNION och UNION ALL vettigt men de borde vara relativt sällsynta utanför rekursiva vanliga tabelluttryck.

PostgreSQL tillhandahåller ett ganska stort antal alternativ för att hålla prestanda på en enda tabell hanterbar, och som du påpekar är partiella index ett mycket bra sätt att hantera detta problem.

Det stora problemet med att dela upp tabeller så att sådana UNION uttalanden är vanliga är att det gör primär- och utländsk nyckelhantering ganska problematisk. I allmänhet är det nästan alltid mycket bättre att först se till att din datastruktur är tydlig och hanterbar, och sedan oroa dig för optimering än att oroa sig för optimering och sedan försöka göra den optimerade lösningen hanterbar.




  1. Modellering av användar-, grupp- och medlemsdatabastabeller

  2. Sortera arrayer efter datum

  3. Måltabellen kan inte uppdateras

  4. Lägger data som skickas till xargs två gånger på en rad