Optimisation de requêtes SQL en PHP : vos astuces pour éviter les bottlenecks

Python, JavaScript, C, PHP, algorithmes, IDE
zed33
Messages : 790
Inscription : lun. oct. 16, 2023 7:24 pm

Optimisation de requêtes SQL en PHP : vos astuces pour éviter les bottlenecks

Message par zed33 »

Salut à tous ! Je bosse sur une appli PHP/MySQL qui commence à ramer sévère sur les requêtes complexes. Des fois j'ai des JOIN sur 4 tables avec des WHERE un peu lourds. Vous avez des bonnes pratiques pour optimiser ça ? Je suis sous MySQL 8.0.
vincent92
Messages : 404
Inscription : mer. sept. 25, 2024 7:24 pm

Re: Optimisation de requêtes SQL en PHP : vos astuces pour éviter les bottlenecks

Message par vincent92 »

Déjà, as-tu vérifié tes indexes ? Un EXPLAIN ANALYZE sur tes requêtes problématiques peut te montrer les scans full table. Perso j'ai gagné 70% de perfs rien qu'en ajoutant des indexes composites bien foutus.
romain_du_44
Messages : 160
Inscription : jeu. oct. 02, 2025 7:24 pm

Re: Optimisation de requêtes SQL en PHP : vos astuces pour éviter les bottlenecks

Message par romain_du_44 »

Je plussoie pour les indexes. Et aussi : penses-tu à utiliser des requêtes préparées ? Pas juste pour la sécurité, mais MySQL cache le plan d'exécution donc tu gagnes sur les requêtes répétitives.
zed33
Messages : 790
Inscription : lun. oct. 16, 2023 7:24 pm

Re: Optimisation de requêtes SQL en PHP : vos astuces pour éviter les bottlenecks

Message par zed33 »

Merci pour les tips ! J'utilise PDO donc oui pour les requêtes préparées. Par contre les indexes composites j'avais pas creusé. Vous recommandez combien de colonnes max dans un index ? J'ai des tables avec 10+ champs...
flo92
Messages : 426
Inscription : mer. juil. 02, 2025 7:25 pm

Re: Optimisation de requêtes SQL en PHP : vos astuces pour éviter les bottlenecks

Message par flo92 »

Au-delà de 4-5 colonnes ça devient contre-productif. Focalise-toi sur les colonnes utilisées dans tes WHERE et JOIN. Et n'oublie pas le partitionnement si tes tables dépassent les 5-10 millions de lignes !
Répondre