TLDR : On est passe de 65 requetes (0,35s) a 0 requete (1,2 ms) pour les jours passes, et de 65 a 24 requetes pour aujourd'hui. Trois changements : regrouper les requetes de vitesse en une seule, mettre en cache les jours termines pendant 24h, supprimer un COUNT inutile. Resultat : 290x plus rapide sur les appels suivants, base de donnees liberee pour le suivi en direct.
Tu ouvres l'historique de trajets d'un véhicule. Tu veux savoir où il est passé hier, à quelle heure, à quelle vitesse. C'est une demande simple. Pourtant, pendant longtemps, notre système faisait travailler la base de données bien plus que nécessaire pour te répondre. Ce post explique ce qu'on a changé, pourquoi, et ce que ça change concrètement pour toi quand tu gères une flotte.
Le problème : 65 requêtes pour un seul véhicule
Prends un véhicule qui a parcouru 189 km hier. 10 cycles d'allumage (démarrages et arrêts moteur), 4 482 positions GPS enregistrées au fil de la journée.
Quand tu ouvrais la page d'historique pour ce véhicule, notre système devait reconstruire chaque trajet à partir de ces données brutes. C'est normal, c'est le travail. Ce qui l'était moins : pour calculer la vitesse maximale de chaque segment, le système envoyait une requête séparée à la base de données par cycle d'allumage. 10 démarrages moteur, 10 requêtes de vitesse. Plus quelques requêtes annexes, et on arrivait à 65 requêtes au total pour afficher l'historique d'un seul véhicule.
Multiplie ça par 50 véhicules. Tu es à 3 250 requêtes juste pour la revue des trajets de la veille. Pendant ce temps, la base de données est occupée à répondre à ces appels répétitifs au lieu de traiter le suivi GPS en direct de ta flotte.
Pour les gestionnaires qui utilisent l'historique de trajets quotidiennement, pour vérifier les livraisons, contrôler les sorties autorisées ou préparer des rapports, ce délai finit par s'accumuler.

Ce qu'on a changé : 3 optimisations simples
On n'a pas réécrit le système. On a identifié trois sources de gaspillage et on les a supprimées.
1. Regrouper les requêtes de vitesse
Avant, le code fonctionnait comme ça : pour chaque segment de trajet, il demandait à la base de données la vitesse maximale enregistrée sur cette période. 10 segments, 10 requêtes.
Le problème, c'est que toutes ces requêtes portaient sur les mêmes données : les positions GPS du véhicule sur la journée. On avait déjà ces données en mémoire.
La correction : on récupère toutes les données de vitesse en une seule requête légère au début du calcul. Ensuite, le filtrage par segment se fait en mémoire, sans toucher à la base de données. Le résultat est identique à la virgule près. Le nombre de requêtes passe de 10 à 1 pour cette étape.
2. Mettre en cache les jours passés
C'est l'optimisation qui change le plus radicalement les chiffres.
Les trajets d'hier ne changeront plus. Un trajet terminé est un trajet terminé. Pourtant, à chaque fois que tu ouvrais la page historique pour un jour passé, le système recalculait tout depuis zéro : reconstruction des segments, calcul des vitesses, formatage des données.
La logique qu'on a appliquée : dès que le résultat d'un jour passé est calculé une première fois, on le met en cache pour 24 heures. La deuxième fois que quelqu'un consulte l'historique du même véhicule pour le même jour (toi, un collègue, un rechargement de page), le système lit directement le cache. 0 requête en base de données. Réponse en 1,2 milliseconde.
Pour les jours en cours, le cache ne s'applique pas : les données changent au fil des trajets, donc on recalcule à chaque appel. Mais le nombre de requêtes a quand même été réduit grâce au regroupement décrit ci-dessus.
3. Supprimer un COUNT inutile
Le système exécutait aussi une requête COUNT à chaque chargement d'historique. Cette requête comptait le nombre total d'enregistrements dans la table. Personne n'utilisait ce chiffre dans l'interface. Il était calculé, transmis, ignoré.
On l'a supprimée. Une requête de moins à chaque appel, sans aucune contrepartie.
Les résultats
| Scénario | Avant | Après | Gain |
|---|---|---|---|
| Premier appel (jour passé) | 0,35s · 65 requêtes | 0,36s · 55 requêtes | -15% requêtes |
| Appel suivant (jour passé) | 0,35s · 65 requêtes | 0,001s · 0 requêtes | 290x plus rapide |
| Aujourd'hui (live) | 0,15s · 65 requêtes | 0,07s · 24 requêtes | 2x plus rapide |
Le premier appel sur un jour passé est quasiment identique en durée : le système doit calculer et mettre en cache pour la première fois. C'est normal et inévitable. Mais dès le deuxième appel, le cache entre en jeu et la différence devient spectaculaire.
Pour les trajets du jour en cours, le gain est de 2x. Moins de requêtes, moins de charge, réponse plus rapide même sans cache.

Ce que ça change pour ta gestion de flotte
La revue matinale ne ralentit plus le système
Si tu gères 50 véhicules et que tu commences ta journée par une revue des trajets de la veille, le nouveau fonctionnement change complètement l'équation.
Avant : 50 véhicules, 65 requêtes chacun, soit 3 250 requêtes au total sur la base de données.
Après la première consultation : tous les résultats sont en cache. Les 49 consultations suivantes représentent 0 requête. La base de données reste disponible pour le suivi GPS en direct, les alertes de zone, et les données de position de ta flotte active.
C'est particulièrement important si tu utilises Traxelio pour suivre des camions de livraison sur Dakar ou des motos de coursiers. Le suivi en direct de tes camions de livraison et la consultation d'historique se partagent les mêmes ressources. Moins l'historique est coûteux, plus le live reste fluide.
Le tableau de bord répond vite
Un outil de suivi de flotte doit répondre rapidement. Pas parce que c'est agréable (même si ça l'est), mais parce qu'un outil lent, on finit par ne plus l'utiliser. Et un outil qu'on n'utilise plus ne sert à rien, même s'il enregistre tout.
L'historique de trajets est probablement la fonctionnalité que tu consultes le plus souvent dans un logiciel de gestion de flotte. Si tu veux comparer les options disponibles sur le marché, on a écrit un comparatif des outils de suivi de flotte à Dakar qui peut t'aider à situer ce qui compte vraiment.
L'historique reste fondamental pour la gestion au quotidien
La vitesse d'affichage n'est pas une fin en soi. Ce qui compte, c'est ce que tu fais avec les données.
L'historique de trajets est la base de plusieurs usages critiques pour un gestionnaire de flotte :
Détection de fraude carburant. Si un véhicule déclare avoir roulé 80 km mais que l'historique GPS en montre 120, il y a un écart à expliquer. On a détaillé cette logique dans notre article sur la réduction de la fraude carburant avec le GPS.
Preuve de livraison. Un client conteste une livraison. L'historique de trajets montre l'heure d'arrivée, le temps passé sur site, et le trajet retour. C'est une preuve objective, disponible en quelques secondes.
Résolution de litiges. Un accident, une plainte, une question sur l'utilisation d'un véhicule en dehors des heures de travail. L'historique répond à ces questions sans que tu aies besoin d'interroger tes chauffeurs.
Pour que ces usages fonctionnent, l'historique doit être précis, complet, et accessible rapidement. C'est ce sur quoi on a travaillé.
Si tu veux aller plus loin sur le choix d'un logiciel de gestion de flotte adapté au marché sénégalais, on a aussi un guide comparatif du meilleur logiciel de gestion de flotte au Sénégal.
Transparence sur les limites
Le premier appel sur un jour passé prend à peu près le même temps qu'avant. Si tu consultes l'historique d'un véhicule pour la première fois à 7h du matin, tu attends 0,36 seconde. Ce n'est pas un problème en pratique, mais on préfère être transparent : le cache ne supprime pas le calcul initial, il supprime tous les calculs suivants.
Pour les jours en cours, le cache ne s'applique pas par définition. On recalcule à chaque fois. Mais avec 24 requêtes au lieu de 65, la charge est bien moindre.
Où trouver l'historique de trajets
L'historique de trajets est disponible dès le plan de base. Chaque véhicule enregistré dans Traxelio conserve l'intégralité de ses trajets, consultables par date, avec vitesse maximale, durée, distance, et carte interactive.
Si tu gères déjà une flotte et que tu n'utilises pas encore cet historique pour tes revues quotidiennes ou tes contrôles de livraison, c'est probablement le premier endroit où regarder pour gagner de la visibilité sur ce que font tes véhicules quand tu n'es pas là.