Optimisation d'une requête ou structure de table
Bonjour,
J'ai une question pour les experts :lol:
J'ai un script en php qui extrait les derniers documents transmis entre quelques centaines de personnes. La table qui contient les documents contient environ 850 000 lignes, ça fait un bon moment (depuis au moins 500 000 entrés dans la table en question) que l'affichage de la page php est lente. J'affiche uniquement les 50 derniers documents avec un système de pagination simple. J'ai inséré une fonction de débugguage qui m'a permis de détecter la cause du ralentissement, la requête de sélection dans cette table est très lente (environ 5 secondes). Même chose sous PHPMyAdmin
Voici la requête SQL:
Code:
1 2 3 4 5 6 7 8
| SELECT documents.id, documents.name, documents.timestamp,
categories.name AS category_name,
categorys.id AS category_id
FROM documents
LEFT JOIN categories ON categories.id = documents.category
WHERE documents.active=1
ORDER BY documents.id DESC
LIMIT 50 |
J'ai une clé primaire sur le champ documents.id et categories.id, un index sur le champ documents.category et documents.active.
Avez-vous une idée de comment optimiser ça ?
N.B, le système tourne sur un core i7 avec 6go RAM, la charge système est très basse.
Merci d'avance pour votre aide :)