Citat:
Ursprungligen postat av zilveer
men om mysql anser att det går snabbare att läsa så hela tabellen istället för att använda index förstår jag inte för som det ser ut nu så körs denna mysql anrop varje gång någon laddar sidan. har man 10 000 besökare så blir det ju 10 000 slow queries..
Ingen som kan hjälpa mig med att lösa detta?
|
Du har redan fått svaret. Du bör inte hämta alla rader. Du bör använda LIMIT. Sidindelning görs med enkelt genom att hämta totala antalet rader från databasen. Dock bör du inte köra en generisk COUNT för varje besökare mot en innodb-tabell utan spara undan antalet rader i speciell tabell/rad/fil - vid insert eller jämna mellanrum beroende på mängd inserts. Detta då innodb bara har en ungefärlig rowcount cachad.