Les langages Optimisation FiveM La base de données
La requête de chaque connexion
À chaque connexion, un framework cherche le joueur par son identifiant :
SELECT * FROM joueurs WHERE licence = ?
Sans index sur licence, la base lit toute la table pour trouver une
ligne. Avec cent joueurs inscrits, personne ne le remarque ; avec quarante
mille, chaque connexion fait attendre le serveur.
L'index
CREATE INDEX idx_joueurs_licence ON joueurs (licence);
La base range les licences dans une structure triée et y trouve directement la bonne ligne. La branche SQL détaille le fonctionnement et le prix des index.
L'ordre des colonnes compte
Un index peut porter sur plusieurs colonnes :
CREATE INDEX idx_pseudo_licence ON joueurs (pseudo, licence);
Il est trié d'abord par pseudo, puis par licence à pseudo égal -- comme un
annuaire trié par nom puis par prénom. Il accélère une recherche par pseudo,
mais pas une recherche par licence seule : chercher tous les « Julien »
dans un annuaire trié par nom oblige à tout lire. Pour une recherche par
licence, la licence doit être la première colonne de l'index.
Côté script
Même avec un index, une requête lancée pour chaque joueur à chaque seconde reste une requête de trop : les index accélèrent les requêtes utiles, ils ne rendent pas les autres gratuites.
1 exercice pour cette lecon
Les exercices demandent un compte : il faut bien enregistrer votre progression quelque part. La lecture, elle, reste libre. Creer un compte
-
Chercher par licence sans tout lire moyen lecon a valider