Vaut-il mieux stocker ses données dans une bdd MySQL ou dans un fichier?
Je sais que c'est une question qui revient souvent, j'ai fait quelques recherches et ai trouvé quelques infos pas toujours concluantes, et j'aimerais résumer ici le résultat de mes recherches, d'abord parce que ça peut servir à d'autres, ensuite pour que vous me disiez si je me trompe, ou s'il y a des choses à rajouter.
------------Avantages des bases MySQL:-----------------
-Si il y a écriture par plusieurs appels clients différents, il faut préférer MySQL car il est bien plus sûr pour gérer les accès concurrents que les fonctions de lecture et d'ecriture dans des fichiers (même avec flock)
-Si il y a écriture par un seul appel client (pas d'accès concurrent) MySQL est aussi plus sûr pour ne pas risquer de corrompre les données...??
-MySQL à des fonctions de recherche (éventuellement croisée) d'information qu'il faudrait s'embêter à recréer si on voulais faire la même chose avec des fichiers
------------Avantage des fichiers--------------------------
-Plus rapide en lecture: j'ai fait une petite expérience chez moi, en mesurant a l'aide de microtime() le temps mis pour sortir la même information d'une bdd MySQL et d'un fichier contenant les mêmes données.
La lecture du fichier prend un temps moyen de 5,7 ms, et en tirer l'information (avec recherche dans le texte) prend 3,1 ms. Ce qui fait 9 ms pour tirer une seule info.
La connexion à MySQL et l'ouverture de la bdd prend 1,3 ms et la requête prend 33,2 ms, soit en tout 34,5 ms pour une seule info.
Donc pour cette requête, chez moi, la lecture dans un fichier est bien plus rapide (et sera encore plus rapide relativement à la bdd si on augmente le nombre de requêtes).
Pour info la requête était 'SELECT * FROM frr WHERE mot="ornithorhynque"'
-En écriture je n'ai pas encore essayé
Voila tout ce que je sais la-dessus, si vous avez des corrections ou compléments...
Je me demandes aussi ce qui est le plus sur au niveau de la sécurité vis-à-vis du piratage (évidemment si on ne fait pas d'erreurs qui puisse mettre en péril la sécurité)...
Partager