Aller au contenu principal
ShadowAcademy

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