FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Bara ett inlägg till!
|
I MySQL Administrator kan jag se att "Key Effiency" (andelen frågor där indexet används helt och hållet till att få fram resultatet) endast snittar på dryga 70%. Det kan inte vara bra och därför vill jag se just dessa SQL-frågor som inte använder sig av index fullt ut, men hur ska jag göra det? Slow query log kan jag såklar använda, men eftersom MySQL Administrator kan se antalet frågor av den typ så låter det väldigt troligt att man också kan se själva frågorna, och det är i sådana fall bättre än en slow query log.
|
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
Om du har tillgång till ditt skal kan du enkelt se vilka frågor som körs för tillfället med kommandot:
mysqladmin -u root -p processlist För att gå vidare, börja med att identifera långsamma frågor genom att tex mäta tiden dom tar att exekvera under normal körning, logga tex alla frågor till en fil inkl exekveringstid (mät innan och efter mysql_query). Sedan kan du i mysqls konsol använda kommandot "explain" (http://dev.mysql.com/doc/mysql/en/EXPLAIN.html) för att se vilka index en fråga använder. Läs på om explain så kommer du att snabbt och effektivt kunna se vart du kan lägga till ytterligare index. Grundläget är dock att alla fält som du har med i en WHERE kan indexeras. |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Bara ett inlägg till!
|
Citat:
Citat:
Citat:
Frågan kvarstår; Jag kan använda mysql slow log, men går det att få fram "rätt" frågor på ett bättre sätt? |
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Klarade millennium-buggen
|
Citat:
Det finns inga snabba genvägar till att skapa en effektiv databasmiljö, det handlar om planering. Har man inte gjort det rätt ifrån början så får man bita i det sura äpplet helt enkelt. Det är möjligt att någon annan vet något som jag inte vet här, men förutom att sitta och manuellt gå igenom alla tabeller och leta efter potentiella foreign keys (vilket jag själv har gjort med egna tabeller) så har jag inga andra tips. |
||
![]() |
![]() |
![]() |
#5 | ||||
|
|||||
Bara ett inlägg till!
|
Citat:
Citat:
Citat:
Citat:
Tack för att du har försökt hjälpa, men min fråga är mycket enkel och jag har än så länge bara fått svaret "jag vet inte" av dig. Eftersom det är svårt att hitta information om detta på google (har mest hittat liknande frågor i forum utan svar) så antar jag att det inte är möjligt. Ikväll ska jag ta mig tid att börja logga långsama frågor (oj vilken tjat av mig om MySQL slow query log) och kika på resultatet. |
||||
![]() |
![]() |
Svara |
|
|