sql >> Database teknologi >  >> RDS >> PostgreSQL

Henter rækker fra flere tabeller med UNION ALL eller bruger du én tabel i produktionen?

Generelt finder jeg den omfattende brug af UNION antyder dårligt databasedesign. Der er tilfælde, hvor UNION og UNION ALL giver mening, men de burde være relativt sjældne uden for rekursive almindelige tabeludtryk.

PostgreSQL giver et ret stort antal muligheder for at holde ydelsen på en enkelt tabel overskuelig, og som du påpeger, er delvise indekser en meget god måde at håndtere dette problem på.

Det største problem med at opdele tabeller sådan, at sådan UNION udsagn er almindelige, er, at det gør primær og udenlandsk nøglestyring ret problematisk. Generelt er det næsten altid langt bedre først at sikre sig, at din datastruktur er klar og overskuelig, og derefter bekymre sig om optimering, end det er at bekymre sig om optimering og derefter prøve at gøre den optimerede løsning overskuelig.




  1. Job for mysqld.service mislykkedes Se systemctl-status mysqld.service

  2. Brug af automatisering til at fremskynde udgivelsestests på PostgreSQL

  3. Hent data for flere enkeltstående eller reference uden lignende operatør

  4. mysql stigningsværdi baseret på tidligere registrering