SQL OPTIMIZE

Dans le langage SQL, la commande OPTIMIZE permet de réorganiser le stockage physique des données et reconstruit les index. Cette commande peut en conséquent améliorer les performances dans certains cas.

Compatibilité : cette commande fonctionne uniquement pour certains Système de Gestion de Base de Données (SGBD), tels que MySQL et MariaDB.

Syntaxe

La commande OPTIMIZE s’exécute dans une requête SQL en respectant la syntaxe suivante :

OPTIMIZE TABLE nom_table;

Bien entendu, le mot-clé “nom_table” doit être remplacé par le nom de la table à optimiser.

Exemple

Imaginons un système ayant une table qui enregistre la localisation d’utilisateurs. Pour une raison quelconque un administrateur va supprimer plusieurs milliers d’enregistrement. Cette suppression est effectuée à partir de la requête ci-dessous :

DELETE FROM location_log
WHERE id < 5000;

La table contenait près de 10.7 Mo de données avant la suppression des données. Une fois la requête exécutée, le système considère encore une fois qu’il y a 10.7 Mo de données, car les données n’ont pas été réorganisées. Pour optimiser les performances, la commande OPTIMIZE est utilisée :

OPTIMIZE TABLE location_log;

Une fois cette requête exécutée, le système affiche dorénavant une taille de 5.4 Mo, ce qui réduit le poids de la base de données. Par ailleurs, étant donné que les index sont reconstruit, cela améliore le temps de lecture des données.

Partager