Som alla skriver, använd index korrekt. Om du använder index blir det en logaritmisk sökning istället för en linjär sökning - åtminstone rent teoretiskt. Så ponera att vi har 3 000 000 rader i databasen. Om man söker logaritmiskt behöver man endast gå igenom cirka 22 element, men linjärt behöver man gå igenom alla 3 000 000. Detta är som sagt rent teoretiskt och det ser väl inte riktigt ut så här då datan ligger på disk och man hämtar lite större block i taget. Däremot så förstår man att det är stor skillnad på att ha index och att inte ha index.
Det finns ett direktiv i MySQL 5 där man kan logga alla förfrågningar som inte använder index. Dessa loggas till slow log-filen. Om du vill göra detta, lägger du till följande i din MySQL-conf.
Kod:
log-slow-queries = /var/log/mysql/mysql-slow.log
log-queries-not-using-indexes = 1
En sak som jag alltid brukar göra när jag skriver querys är att använda EXPLAIN på dessa. Då ser man om frågan använder index korrekt. När du sedan kollar i loggen för frågor som inte använder index, använder du också EXPLAIN på dessa.