L'écriture de données est souvent considérée comme un processus gourmand en ressource.
Il convient donc de bien étudier chaque modification d'enregistrement dans une base de données afin de ne pas surcharger le serveur.
Cet article propose de mesurer et comparer les temps nécessaires à la modification d'un ou deux champs avec des nombres ou des chaînes de caractères de différentes longueurs ainsi qu'une itération.
Protocole
Le test est effectué sur une table nommée "TABLE" contenant deux champs appelés "colonne1" et "colonne2". La table possède un enregistrement.
La mesure est effectuée sur la durée nécessaire à 10 000 modifications de l'enregistrement.
Chaque test est effectué sur un puis deux champs.
Les requêtes sont de la forme :
UPDATE TABLE SET colonne1="modification"
UPDATE TABLE SET colonne1="modification",colonne2="modification"
Six modifications sont testées :
- écriture d'un nombre aléatoire à un chiffre,
- écriture d'un nombre aléatoire à cinq chiffres,
- écriture d'un calcul (addition d'une unité à la valeur enregistrée),
- écriture d'une chaîne aléatoire d'un caractère,
- écriture d'une chaîne aléatoire de cinq caractères,
- écriture d'une chaîne aléatoire de cent caractères.
Pour ne mesurer que le temps nécessaire à l'écriture, les chaînes aléatoires sont créées avant le test et enregistrées dans un tableau.
Résultats
Pour mieux apprécier les différences, la partie inférieure à 0,5 seconde a été effacée.
Conclusions
Les temps de modifications sont très similaires.
Plus la chaîne à écrire est longue plus cela demande des ressources. Cependant le temps requis n'est pas proportionnel à la longueur de l'insertion.
Le serveur est plus sollicité lorsque la modification nécessite un calcul (même simple).
Les modifications d'un nombre ou d'une chaîne de caractère sont équivalentes en termes de ressources.