Problème de lenteur avec MySQL sur une table de 10 millions d'entrées

MySQL, PostgreSQL, requetes, optimisation
zed33
Messages : 790
Inscription : lun. oct. 16, 2023 7:24 pm

Problème de lenteur avec MySQL sur une table de 10 millions d'entrées

Message par zed33 »

Salut à tous, je gère une base MySQL avec une table de 10M de lignes (InnoDB). Les requêtes SELECT simples prennent parfois 2-3 secondes, c'est ingérable. J'ai un index sur le champ 'user_id', mais ça ne suffit pas. Des idées ?
vincent92
Messages : 404
Inscription : mer. sept. 25, 2024 7:24 pm

Re: Problème de lenteur avec MySQL sur une table de 10 millions d'entrées

Message par vincent92 »

As-tu vérifié ton plan d'exécution avec EXPLAIN ? Parfois, MySQL ignore les indexes si la requête est mal formulée. Aussi, regarde ta RAM dispo, InnoDB utilise beaucoup le buffer pool.
guillaume34
Messages : 103
Inscription : jeu. oct. 12, 2023 7:24 pm

Re: Problème de lenteur avec MySQL sur une table de 10 millions d'entrées

Message par guillaume34 »

Je confirme pour EXPLAIN. Et si tu as des jointures, vérifie l'ordre des tables. MySQL est capricieux là-dessus. Sinon, partitionnement ? J'ai gagné 70% de perfs sur une table similaire en partitionnant par année.
zed33
Messages : 790
Inscription : lun. oct. 16, 2023 7:24 pm

Re: Problème de lenteur avec MySQL sur une table de 10 millions d'entrées

Message par zed33 »

Merci ! EXPLAIN montre un 'full scan' sur une sous-requête... Je vais revoir ça. Pour le partitionnement, c'est sur du timestamp, mais je crains la surcharge à l'écriture. Vous utilisez quel format ? RANGE ?
flo92
Messages : 426
Inscription : mer. juil. 02, 2025 7:25 pm

Re: Problème de lenteur avec MySQL sur une table de 10 millions d'entrées

Message par flo92 »

Attention, le partitionnement a des limites ! Sur notre serveur Dell PowerEdge R740 (128GB RAM), on a eu des deadlocks en écriture avec 15 partitions. Teste d'abord en dev avec un jeu réaliste.
Répondre