[MAJ] Note : SQLite VS fichiers.txt - Le Hollandais Volant

#5274

Nope : c’est beaucoup trop lent.
Rien que le listage du tableau de 9000 commentaires prends 200ms là où SQLite n’en prend que 70.

Et encore, si j’ajoute l’encodage base64 (presque obligatoire par dessus de serialize, pour des questions d’encodage de caractères), je suis à 800ms pour les commentaires.

Nope, nope nope, ce n’est pas la peine. Désolé.

Et même pour les petites bases de données, SQLite reste plus rapide (la différence est moins marquée, mais est de l’ordre de 20 à 30% tout de même).

Note : ces chiffres comptent quoi au juste ?
- L’ouverture du fichier contenant les données (file_get_contents())
– La remise sous la forme d’un tableau PHP (base64_decode + unserialize)
— Un array_slice() qui ne conserve que les 50 premières lignes du tableau (même pas de tri, ce dernier étant fait à l’écriture de la base).

Et en info : j’utilise 3 fichiers différents (liens, commentaires, articles) et seul un n’est chargé à chaque fois, alors qu’en SQL, les trois sont dans la même base .sqlite…
Les fichiers .txt font respectivement 6 Mo, 21 Mo et 7 Mo.
Et mon fichier SQlite fait lui 21 Mo pour les mêmes données (la différence vient du Base64, qui prend systématiquement un minimum de 33% de place en plus — à cause du fonctionnement de Base64 : placer 3 bits binaires sur 4 bits en base 64).

Donc non : Blogotext restera sur du SQLite, avantageux sur tous les points, même les différentes formes de tri.
Blogotext deviendrait très rapide en TXT si on en retirait des fonctionnalités (tags, calendrier, …).