Kom ihåg mig?
Home Menu

Menu


MySQL-fråga

 
Ämnesverktyg Visningsalternativ
Oläst 2009-05-19, 16:06 #11
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
UNION gör en implicit DISTINCT, så den går långsammare än UNION ALL, som förutsätter att det du smäller samman är unikt (vet inte vad du har för PK eller unique constraints i dina tabeller).

Gräsligt query du skaffat dig i alla fall.. jag skulle råda till omdesign, men det kanske inte är aktuellt om tabellerna nu var så stora
Perben är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-19, 16:28 #12
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Jag tycker också det känns som att databasdesignen inte är helt optimal. Finns det ingen möjlighet till ombyggnad så kan du kanske ordna med någon cache-funktionalitet om det inte måste vara purfärska data?
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-19, 19:01 #13
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
Jag vet inte riktigt hur man skulle kunna göra designen bättre, vad det handlar om är att lagra i en tabell (tabell 2) vilka värden som är tillåtna för ett visst attribut i en annan (tabell 1). Frågan kommer inte köras så ofta och inte av användarna utan bara av "administratören".

@Perben: Vad menar du med att allt som man smäller samman ska vara unikt?
andi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-19, 20:20 #14
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
Perben Perben är inte uppkopplad
Flitig postare
 
Reg.datum: Apr 2009
Inlägg: 393
Andi,

Det beror lite på vilken motor man använder på baksidan, men oftast är det så att UNION (vilket är ett alias för UNION DISTINCT på väldigt många databaser) skapar en slags temporär tabell för att kolla duplicerade entries. UNION ALLhar ingen sådan koll. Så om man vet att datat man sätter ihop med en union är unikt är UNION ALL snabbare. Det finns rätt väl beskrivet både för MS SQL och MySQL, vet att Oracle har samma "syndrom."

http://www.mysqlperformanceblog.com/...l-performance/
http://blog.sqlauthority.com/2007/03...r-performance/
Perben är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-05-19, 20:46 #15
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
andi andi är inte uppkopplad
Flitig postare
 
Reg.datum: Jun 2006
Inlägg: 344
OK, jag fattar, tack!

Måste även tacka alla andra som kom med förslag på lösningar!
andi är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 13:07.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017