1

Optimiser une requête MySQL lente sur 2 millions de lignes de transactions

FC Fatimata Compaoré 45 il y a 1 mois Burkina Faso

Mon tableau de bord met 12 secondes à afficher les transactions d'un marchand sur un mois. La table contient 2 millions de lignes.

Modifiée il y a 4 heures
  • Pouvez-vous préciser la version utilisée ? Le comportement a changé récemment. · Seydou Dembélé · il y a 1 mois
0
MB Mariama Bah 269 · il y a 1 mois

Lancez EXPLAIN sur la requête. Dans 9 cas sur 10 il manque un index composite correspondant au filtre et au tri, par exemple (marchand_id, created_at). L'ordre des colonnes compte : égalité d'abord, plage ensuite.

5
LZ Landry Zoungrana 266 · il y a 1 mois

Évitez aussi SELECT * et le OFFSET énorme pour la pagination : utilisez la pagination par curseur (where id < :dernier_id order by id desc limit 50). Pour les totaux, une table de synthèse recalculée chaque nuit est souvent préférable.

Vous connaissez la réponse ? Rejoignez Griot pour aider.

Publier

Poser une question Obtenir de l'aide de la communauté Publier un composant Partager un SDK, un wrapper ou un package Proposer un troc Échanger une heure d'aide contre une autre Créer une prime Récompenser une solution en Mobile Money Organiser un hackathon Lancer un défi pour la communauté
Troc de compétences Primes Hackathons Observatoire