Databas optimering
Hej
Jag har nu en väldigt stor databas som det går en del querys på, närmare sagt 135,447,767 querys på 78 dagar.
Databasen har en del tabeller, 22 för att vara exakt. Dem flesta håller bara en del "statisk" info så som kategorier etc.
Det är MySQL och MyISAM tabeller.
Men sen är det 3 tabeller som fylls med loggar och det är dem som tar tid och det jag undrar är vad som kan göras för att optimera lite här.
Jag förstår självklart att detta inte kommer vara tillräckligt med information från min sida men tänkte en generella tips
Lite information om dem 3 tabellerna.
Namn - Rader - Storlek - Kommentar
'logg_case' - 1,627,812 - 408,3 MiB - Här sparas det mesta av loggen, username, fritext, några datum, aborted totalt 12 kollumner. Många fält som har standard NULL som jag förstått inte är så bra? 7 kardinaliteter som jag inte vet riktigt hur dem fungerar, höga tal på dem iaf.
Och sen 2 tabeller för 'cat2case' och 'flagg2case' som bara binder ihop loggar med kategorier och flaggor. En case kan ha flera flaggor och kategorier.
Varje gång man ska logga något så visar den tidigare loggar på samma username/identifikator och går då genom dem 1,6 miljoner rader som 'case' består av och också 'cat2case'/'flagg2case' så det tar en del tid...
Bah känns så hopplöst att ändra på en så stor existerande databas som jag inte gjort från början!
Men igen, vad är viktigt att tänka på här, pröva få bort NULL som standard på rader? Kardinaliteten?