Mode SQLite WAL pour de meilleures performances Web simultanées

DEV - 07/03
Comment le mode SQLite WAL permet des lectures et écritures simultanées pour les applications Web PHP, avec un véritable benchmark

Introduction

SQLite est considéré comme une « base de données jouet » pour les applications Web, mais avec la bonne configuration, il peut gérer un trafic de production réel. L'arme secrète est le mode WAL (Write-Ahead Logging). Voici comment je l'utilise pour alimenter ViralVidVault, une plate-forme vidéo servant des milliers de pages pendant que les tâches cron écrivent de nouvelles données simultanément.

Le problème : les lecteurs bloquent les écrivains

Dans le mode journal par défaut de SQLite (DELETE), une opération d'écriture verrouille l'intégralité de la base de données. Si votre tâche cron insère 200 vidéos, chaque requête Web qui tente de lire la base de données attendra. Sur une plateforme vidéo, c’est inacceptable.

La solution : le mode WAL

Le mode WAL inverse le modèle de verrouillage : les lecteurs ne bloquent jamais les rédacteurs, et les rédacteurs ne bloquent jamais les lecteurs. Plusieurs lecteurs peuvent accéder...
[Courte citation de 8% de l'article original]

Loading...