SQLite est 35 % plus rapide que le système de fichiers
Selon les tests des développeurs du moteur de base de données

Le , par Coriolan, Chroniqueur Actualités
Alors que la version 3.19.3 de SQLite a été rendue disponible en ce début de mois, les développeurs de ce moteur de base de données ont publié une série de mesures et tests montrant que SQLite est 35 % plus rapide que le système de fichiers. La latence read/write du SQLite rivalise avec la latence de fichiers individuels sur disque. Souvent, SQLite est plus rapide, ce qui prouve qu’une base de données relationnelle n’est pas forcément toujours plus lente qu’un système de fichiers I/O.

SQLite peut lire des petits blobs (par exemple des aperçus d’images) à une vitesse 35 % plus rapide que les mêmes blobs peuvent être lus ou écrits dans des fichiers individuels en utilisant fread() ou fwrite(). De plus, une seule base de données SQLite contenant 10 kilobytes de blobs occupe 20 % moins d’espace sur disque que si elle stocke des blobs dans des fichiers individuels.

Cette différence de performance provient selon les auteurs du fait que les appels open() et close() sont invoqués une seule fois quand le travail est fait à partir d’une base de données SQLite. Alors que open() et close() sont invoqués une fois pour chaque blob quand ces blobs sont stockés dans des fichiers individuels. La réduction de la taille de l’espace du disque occupée provient elle du fait que les blobs sont rangés de façon compacte dans une base de données SQLite.

Ces mesures qui ont été réalisées durant la première semaine de ce mois et concernent toutes les versions entre 3.19.2 et 3.20.0. Le chiffre de 35 % reste approximatif, en effet, la vitesse peut varier d’une machine à une autre et selon l’OS. Quelques utilisateurs ont rapporté que SQLite a une latence plus importante que l’I/O direct dans leurs systèmes.

SQLite fait partie des bases de données les plus utilisées de la planète. Elle est réputée par sa facilité d’utilisation et sa qualité excellente. Contrairement aux serveurs de bases de données traditionnels, comme MySQL ou PostgreSQL, sa particularité est de ne pas reproduire le schéma habituel client-serveur, mais d'être directement intégrée aux programmes. L'intégralité de la base de données (déclarations, tables, index et données) est stockée dans un fichier indépendant de la plateforme.

Les auteurs des tests ont trouvé les résultats suivants :

  1. SQLite est plus compétitive et généralement plus rapide que les blobs stockés en fichiers séparés sur disque, que ça soit pour la vitesse de lecture et d’écriture ;
  2. SQLite est beaucoup plus rapide que les écritures directes sur disque quand la protection antivirus est activée sur Windows. Puisque l’antivirus est installé par défaut sur Windows, cela veut dire que SQLite est généralement plus rapide que les écritures directes sur l’OS de Microsoft ;
  3. La lecture est plus rapide que l’écriture pour tous les systèmes (la différence est d’un ordre de magnitude) ;
  4. La performance I/O varie largement selon le système d’exploitation et le matériel ;
  5. D’autres vendeurs de moteurs de bases de données préconisent à ce que les développeurs stockent les blobs dans des fichiers séparés, puis stocker le nom de fichier dans la base de données. Dans ce cas, la base de données doit être consultée au préalable pour trouver le nom de fichier avant de l’ouvrir et le lire. Mais le fait de simplement stocker le blob entier dans la base de données permet une performance de lecture et d’écriture meilleure avec SQLite.


Source : sqlite.org

Et vous ?

Qu'en pensez-vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de SurferIX SurferIX - Membre chevronné https://www.developpez.com
le 23/06/2017 à 10:27
J'adore ! Quand je fais un nouveau site avec Django, je n'utilise que du SQLlite. J'ai fait des tests de performance, c'est énorme. Je garantis que sur Cogofly on peut monter sans problème jusqu'à 10000 utilisateurs inscrits + suivi de news, like, et messages sans problème. La base fait à peine 30 Mo avec 4000 utilisateurs et pas mal actifs, et mes tests sont montés avec une base jusqu'à 2Go sans souci de ralentissement. Probablement plus de 10000 utilisateurs, mais bref, j'ai de quoi voir venir.

Donc bien sûr, si vous voulez faire du Web rapidement pour faire des démos et vendre, foncez sur SQLite, après vous faites un export + ré-injection dans une base plus lourde comme PostGreSQL si votre projet grossit vraiment (et c'est tout le mal que je vous souhaite ).
Offres d'emploi IT
Responsable de projet logiciel H/F
Safran - Ile de France - Éragny (95610)
Architecte systèmes externes TP400 H/F
Safran - Ile de France - Moissy-Cramayel (77550)
Expert application Supply Chain & Achats H/F
Safran - Ile de France - Evry (91)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil