webForumDet fria alternativet

Samköra tabeller från olika databaser

Databaser & SQL

4 svar · 479 visningar · startad av Troxy

Medlem sedan mars 20041 505 inlägg
Frågan#1

Hallå, jag har runt 50 databaser som alla innehåller en tabell med varierande antal poster, i snitt är det väl ungefär 100000 poster/tabell.
Nu behöver jag samköra tabellerna från alla databaserna i en SQL-fråga för att få ut diverse statistik.
Hur ska man på bästa sätt göra detta?
Rent praktiskt så funderar jag på att skippa separata databaser, och istället slänga ihop allting till en gigantiskt tabell. Bra eller dåligt?

Medlem sedan juni 20008 205 inlägg
#2

Tja, allt beror ju på hur dina behov ser ut, och hur datan ser ut. Har du 50 databaser med likadana tabeller som måste samköras känns det rätt logiskt att du slår samman dem till en, men det är inte nödvändigtvis rätt sak att göra (även om jag nog skulle säga att det är det i de flesta fallen).

Det går att ställa frågor som använder tabeller från olika databaser, men det är inte riktigt standard-SQL och det lär inte vara helt optimalt heller. Hur det ser ut beror på DBMS:en. I MySQL kan du säga SELECT * FROM databas1.nåntabell UNION SELECT * FROM databas2.nåntabell för att selecta från fler databaser.

Medlem sedan mars 20041 505 inlägg
#3

Okay, då finns det alltså inte något sätt att dynamiskt samköra poster från flera databaser?
Om jag måste hårdkoda databas1, databas2, databas3 osv. i frågan så kommer inte hålla i längden.

Nej jag tror att jag besparar mig mycket möda om jag slår ihop allting, SQL-frågorna kommer att bli mycket snyggare!
Men hur blir det med prestandan? Om några månader så kommer antalet poster säkert att bli över en miljon.

Medlem sedan juni 20008 205 inlägg
#4

Det ska inte vara några problem om det är vettigt indexerat.

Medlem sedan mars 20041 505 inlägg
#5

Tack för hjälpen.

264 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)