en espérant que vous pouvez m'aider sur la bonne voie pour commencer à optimiser mes requêtes. Je n'ai jamais trop pensé à l'optimisation avant, mais j'ai quelques questions similaires à celle ci-dessous et je veux commencer à me concentrer sur l'amélioration de leur efficacité. Un exemple d'une requête dont j'ai besoin mal d'optimiser est la suivante:Optimisation de requête MySQL aide
SELECT COUNT(*) AS `records_found`
FROM (`records_owners` AS `ro`, `records` AS `r`)
WHERE r.reg_no = ro.contact_no
AND `contacted_email` <> "0000-00-00"
AND `contacted_post` <> "0000-00-00"
AND `ro`.`import_date` BETWEEN "2010-01-01" AND "2010-07-11" AND `r`.`pa_date_of_birth` > "2010-01-01" AND EXISTS (SELECT `number` FROM `roles` WHERE `roles`.`number` = r.`reg_no`)
Exécution EXPLIQUEZ sur le produit ci-dessus les éléments suivants:
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+--------------------+-------+--------+---------------+---------+---------+---------------------------------------+-------+-------------+
| 1 | PRIMARY | r | ALL | NULL | NULL | NULL | NULL | 21533 | Using where |
| 1 | PRIMARY | ro | eq_ref | PRIMARY | PRIMARY | 4 | r.reg_no | 1 | Using where |
| 2 | DEPENDENT SUBQUERY | roles | ALL | NULL | NULL | NULL | NULL | 189 | Using where |
Merci Mchl. Remplacé les sous-requêtes par des jointures et accéléré considérablement les requêtes. Dois-je aussi envisager d'ajouter des indices aux tableaux ci-dessus? – ted776
Oui, vous devriez. – Mchl