FAQ |
Kalender |
![]() |
#11 | ||
|
|||
Mycket flitig postare
|
Hmmm. Ser inte ut att göra någon skillnad när jag kör EXPLAIN på den i alla fall.
Problemet verkar ju ligga i att den gör full table scan på catraws-tabellen för varje rad i category-tabellen. |
||
![]() |
![]() |
![]() |
#12 | ||
|
|||
Klarade millennium-buggen
|
Du joinar mellan catraws och categories på två olika sätt, kan vara det som stökar till det.
Full table scan får man leva med ibland. men jag trodde att det vara den temporära tabellen som var ditt stora problem? |
||
![]() |
![]() |
![]() |
#13 | ||
|
|||
Klarade millennium-buggen
|
Har du satt index i båda tabellerna dvs både på Främmande nyckel och primärnyckel? Det kan ha betydelse när SQL ska söka efter en FK (Forreign Key).
Ett vanligt problem är att man glömmer att indexera Främmande nycklar, det finns de som kör utan primärnycklar också. Kolla hur dina sammansatta index ser ut dvs om du har fler kolumner i ett och samma index eller primärnyckel. Kolla att du har samma ordning i JOIN och WHERE satser. Kolla även att du har det mest diskriminerande värdet först, och sen i fallande skala... Senast redigerad av Conny Westh den 2011-03-11 klockan 00:26 |
||
![]() |
![]() |
![]() |
#14 | ||
|
|||
Har WN som tidsfördriv
|
Jag skulle nog se över databasdesignen i allmänhet.
Citat:
Senast redigerad av Adestro den 2011-03-11 klockan 10:03 |
||
![]() |
![]() |
![]() |
#15 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Ta Currency som har en internationellt standardiserad 3-ställig valutakod SEK, NOK; USD; EUR mfl dessa passar betydligt bättre som primärnycklar än ett orelaterat heltalsvärde. |
||
![]() |
![]() |
![]() |
#16 | ||
|
|||
Administratör
|
Citat:
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#17 | ||
|
|||
Klarade millennium-buggen
|
Citat:
När man bygger en databasstruktur i en relationsdatabas så är det viktigaste att man får en inbyggd kvalitetskontroll på informationen man lagrar. Då är naturliga primärnycklar en naturlig del av det arbetet. Främmande nycklar som då länkar till primärnycklar är en annan del. Atomära egenskaper ytterligare en. Att följa normalformernas definitioner ytterligare en. Att använda syntetsiska primärnycklar ska manundvika och endast använda i de fall när det inte finns en naturlig primärnyckel eller där en naturlig primärnyckel kommer att bestå av orimligt många kolumner (typ; >7 kolumner). Den "prestandavinst" man vinner på att använda syntetiska PK är oftast så marginell att den inte är värd att beakta, i de flesta fall. Man förlorar så otroligt mycket mer vad gäller den inbyggda kvalitetskontrollen av information när man gör det. Använder man naturliga PK så kan man som människa utföra okulärbesiktning av data på ett enklare sätt än med syntetiska PK. Du kan m a o direkt se om set står NOK i en kolumn där du för väntar dig att det ska stå SEK, men om det står 4 i stället för 7 så finns det inget naturligt sätt för en människa att avgöra om informationen är korrekt eller inte. Man måste ha mycket mer komplexa sätt att kontrollera om informationen är korrekt och det innebär att det är lättare att man får strukturella fel i sin databas och sina applikationer. Senast redigerad av Conny Westh den 2011-03-14 klockan 11:00 |
||
![]() |
![]() |
![]() |
#18 | ||
|
|||
Har WN som tidsfördriv
|
Citat:
![]() Vilken databasdesign som passar bäst beror ju på hur databasen ska användas. Men använder man ett RDBMS är man antagligen intresserad av att efterleva ACID. Annars ska man nog titta på andra databassystem med andra sätt att lagra data. Du säger: "När man bygger en databasstruktur i en relationsdatabas så är det viktigaste att man får en inbyggd kvalitetskontroll på informationen man lagrar.". Det är ju just det man åsidosätter genom att göra som du föreslår? Genom att acceptera redundans ber man om dataanomalier i databasen. För att inte tala om prestandakostnaden att i beräkningar jämföra VARCHAR med VARCHAR jämfört med INT med INT... Senast redigerad av Adestro den 2011-03-14 klockan 18:39 |
||
![]() |
![]() |
![]() |
#19 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Det där med texterminal förstod jag inte? Jag använder grafiska verktyg att analysera data med. Senast redigerad av Conny Westh den 2011-03-14 klockan 12:10 |
||
![]() |
![]() |
![]() |
#20 | ||
|
|||
Supermoderator
|
Citat:
Nej, det där tänket bör förpassas till det förgångna en gång för alla.
__________________
Full-stack developer, free for smaller assignments Senast redigerad av tartareandesire den 2011-03-14 klockan 14:00 |
||
![]() |
![]() |
Svara |
|
|