Page 1 sur 1
Optimisation d'une requête SQL sur 10 millions de lignes - EXPLAIN bizarre
Publié : mar. oct. 21, 2025 9:54 am
par zed.g
Je galère sur une requête qui scanne 10M de lignes malgré un index. EXPLAIN montre 'Using index condition' mais 12s d'exécution ! Voici le schéma : table `orders` (id, user_id, date, amount) avec INDEX(user_id, date).
Re: Optimisation d'une requête SQL sur 10 millions de lignes - EXPLAIN bizarre
Publié : mar. oct. 21, 2025 10:54 am
par codeur1974
Peux-tu partager la requête exacte ? Le problème vient peut-être d'un CAST implicite ou d'une condition OR mal optimisée.
Re: Optimisation d'une requête SQL sur 10 millions de lignes - EXPLAIN bizarre
Publié : mar. oct. 21, 2025 12:54 pm
par zed.g
C'est un simple SELECT * FROM orders WHERE user_id = 123 AND date BETWEEN '2023-01-01' AND '2023-06-30'. Le plan montre qu'il utilise bien l'index mais... lent !
Re: Optimisation d'une requête SQL sur 10 millions de lignes - EXPLAIN bizarre
Publié : mar. oct. 21, 2025 3:54 pm
par devjunkie.m
As-tu analysé la distribution des données ? Si user_id=123 a 500k commandes, l'index ne suffit pas. Essaye FORCE INDEX et compare.
Re: Optimisation d'une requête SQL sur 10 millions de lignes - EXPLAIN bizarre
Publié : mar. oct. 21, 2025 4:54 pm
par zed.g
Bonne idée ! FORCE INDEX réduit à 3s. Mais c'est bizarre que l'optimiseur ne choisisse pas ça seul. Je vais vérifier les stats avec ANALYZE TABLE.