En utilisant ce site, vous acceptez la Politique de confidentialité et les Conditions Générales de Vente.
Accepter
Le Blog de BBND – Actualités et nouvelles tendances du webLe Blog de BBND – Actualités et nouvelles tendances du web
  • News
  • Catégories
    • Actualités Numériques
    • Blockchain
    • Business Intelligence
    • Cybersécurité
    • Data
    • Développement Web
    • Hardware
    • Intelligence Artificielle
    • Mobile
    • Technologie
    • Web Design
    • Web Marketing
  • BBND
  • Qui sommes-nous
  • Initiatives
  • Réalisations
  • Formations
  • Recrutement
  • Contact
En cours de lecture : Optimisation de SQLite : Laravel Optimize Database
Partager
Notification Voir mes signets
Dernières actualités
Illustration représentant Rclone, un outil de synchronisation cloud en ligne de commande, avec une icône de cloud et flèches de transfert
Rclone : Guide complet pour synchroniser, sauvegarder et monter vos fichiers cloud
Technologie
Schéma comparatif entre IPMI, PiKVM et NanoKVM pour le contrôle à distance
IPMI, PiKVM ou NanoKVM : Quelle solution KVM choisir ?
Hardware
Des packages npm malveillants compromettent Cursor, volent des identifiants et cryptomonnaies, et déploient des chevaux de Troie. Détail des campagnes.
Une faille dans Cursor : plus de 3 200 développeurs infectés via des packages npm malveillants
Cybersécurité
Filament v3 laravel
Pourquoi Filament V3 change-t-il la donne pour les développeurs Laravel ?
Développement Web
Illustration d’un cerveau connecté à une intelligence artificielle, symbolisant la recherche contre Alzheimer
L’IA dévoile une cause possible d’Alzheimer et identifie une piste thérapeutique prometteuse
Intelligence Artificielle
Aa
Le Blog de BBND – Actualités et nouvelles tendances du webLe Blog de BBND – Actualités et nouvelles tendances du web
Aa
Recherche
  • News
  • Catégories
    • Actualités Numériques
    • Blockchain
    • Business Intelligence
    • Cybersécurité
    • Data
    • Développement Web
    • Hardware
    • Intelligence Artificielle
    • Mobile
    • Technologie
    • Web Design
    • Web Marketing
  • BBND
    • Qui sommes-nous
    • Initiatives
    • Réalisations
    • Formations
    • Recrutement
    • Contact
Suivez-nous
  • Personnaliser mes sujets d’intérêts
  • Mes signets
© 2023 BBND All Rights Reserved.
Le Blog de BBND – Actualités et nouvelles tendances du web > Tous les articles > Data > Optimisation de SQLite : Laravel Optimize Database
DataDéveloppement Web

Optimisation de SQLite : Laravel Optimize Database

Hamza L.
De Hamza L. 21 octobre 2024
Partager
7 min de lecture
laravel optimize db
Partager

L’optimisation des bases de données est cruciale pour améliorer la performance et la fiabilité des applications Laravel. Lorsque vous utilisez SQLite, une base de données légère et pratique, il est important de configurer correctement les paramètres pour éviter les ralentissements, en particulier en production. Le package Laravel Optimize Database, créé par Nuno Maduro, vise à simplifier ce processus en appliquant des configurations spécifiques pour optimiser SQLite dans les projets Laravel.

based on today's work on pinkary, decided to abstract the sqlite migration optimizations—like wal mode—into a new package

introducing laravel optimize database: publishes migrations that make your database faster 💨 (link bellow) pic.twitter.com/swRO0SfFWK

— Nuno Maduro ☁️ 🦹 (@enunomaduro) July 25, 2024

Dans cet article, nous allons explorer en détail ce package, ses fonctionnalités, son installation, et comment l’utiliser pour améliorer les performances de vos bases de données SQLite.

Présentation du package Laravel Optimize Database

Le package Laravel Optimize Database est un outil en cours de développement qui permet d’optimiser les bases de données SQLite dans un environnement Laravel. Bien qu’il ne soit pas encore recommandé pour une utilisation en production, il constitue une excellente base pour préparer des bases de données prêtes à affronter des environnements de production.

Ce package applique des paramètres PRAGMA spécifiques à SQLite via deux méthodes :

  • Migration : Certaines configurations sont appliquées lors des migrations Laravel.
  • Runtime : D’autres configurations sont appliquées en temps réel grâce à un service provider intégré.

Voici un tableau récapitulatif des paramètres appliqués par ce package :

ParamètreValeurVia
PRAGMA auto_vacuumincrementalMigration
PRAGMA journal_modeWALMigration
PRAGMA page_size32768Migration
PRAGMA busy_timeout5000Runtime
PRAGMA cache_size-20000Runtime
PRAGMA foreign_keysONRuntime
PRAGMA incremental_vacuum(enabled)Runtime
PRAGMA mmap_size2147483648Runtime
PRAGMA temp_storeMEMORYRuntime
PRAGMA synchronousNORMALRuntime

Ces paramètres visent à améliorer la performance de SQLite, en particulier pour les applications avec des lectures et écritures fréquentes, tout en garantissant l’intégrité des données.

Installation du package Laravel Optimize Database

Prérequis

Avant de pouvoir utiliser ce package, assurez-vous que votre environnement de développement remplit les prérequis suivants :

  • PHP 8.2+
  • SQLite 3.46+
  • Laravel 11.0+

Installation avec Composer

L’installation se fait simplement via Composer. Ouvrez un terminal et exécutez la commande suivante :

composer require nunomaduro/laravel-optimize-database

Utilisation du package

Une fois le package installé, vous pouvez immédiatement commencer à optimiser votre base de données SQLite. Pour cela, deux commandes sont nécessaires : l’une pour appliquer les paramètres en temps réel, et l’autre pour appliquer les paramètres via les migrations.

Application des paramètres Runtime

Les paramètres Runtime sont appliqués automatiquement lorsque vous exécutez la commande suivante :

php artisan db:optimize

Cette commande ajuste des paramètres tels que busy_timeout, cache_size et mmap_size en fonction de votre configuration actuelle, optimisant ainsi votre base de données sans intervention manuelle.

Application des paramètres de migration

Les paramètres comme auto_vacuum et journal_mode nécessitent d’être appliqués via une migration Laravel. Pour cela, vous devez exécuter la commande suivante après avoir configuré vos migrations :

php artisan migrate

Cela garantit que ces paramètres sont appliqués directement dans la structure de votre base de données, améliorant ainsi sa performance globale et sa stabilité.

Analyse des paramètres PRAGMA et leur impact

Certains paramètres PRAGMA appliqués par le package Laravel Optimize Database ont un impact significatif sur les performances de SQLite. Voici une analyse de trois paramètres particulièrement importants :

journal_mode = WAL

Le paramètre Write-Ahead Logging (WAL) est crucial pour améliorer la concurrence dans SQLite. En mode WAL, SQLite permet à plusieurs lecteurs d’accéder à la base de données en même temps tout en assurant l’intégrité des écritures. Cela se traduit par une meilleure gestion des charges mixtes de lecture et d’écriture.

Avantages

  • Améliore la concurrence en permettant plusieurs lectures simultanées.
  • Garantit l’intégrité des données tout en maintenant une haute performance.

Cas d’utilisation

Le mode WAL est particulièrement utile dans des applications qui nécessitent à la fois des lectures et des écritures fréquentes, comme les systèmes de gestion de contenu ou les applications web à fort trafic.

cache_size = -20000

La taille du cache détermine combien de pages de la base de données SQLite peuvent être stockées en mémoire. En fixant ce paramètre à -20000, SQLite alloue environ 20 Mo de mémoire pour le cache, ce qui réduit considérablement les accès disque et améliore les temps de réponse pour les requêtes fréquentes.

Avantages

  • Réduit les accès disque, améliorant ainsi les performances de lecture.
  • Permet un traitement plus rapide des requêtes pour les bases de données fréquemment consultées.

Cas d’utilisation

Ce paramètre est crucial pour les bases de données avec de gros volumes de données, ou pour les systèmes qui ont suffisamment de mémoire disponible pour gérer un cache plus grand.

mmap_size = 2147483648

Le Memory Mapping (mmap) permet à SQLite de charger des fichiers directement en mémoire, ce qui améliore la vitesse d’accès aux données. Avec une taille de mappage de 2 Go, ce paramètre permet de réduire la charge liée aux opérations d’I/O, rendant les lectures et écritures plus efficaces.

Avantages

  • Réduit le besoin de faire des appels système pour lire ou écrire des données.
  • Améliore la performance des grandes bases de données.

Cas d’utilisation

Ce paramètre est recommandé pour les systèmes disposant d’une grande quantité de mémoire et ayant besoin d’un accès rapide aux données stockées dans de grandes bases de données.

Précautions d’utilisation

Il est important de rappeler que le package Laravel Optimize Database est encore en phase de développement. Par conséquent, il est conseillé de l’utiliser avec prudence, surtout dans les environnements de production. Avant de l’implémenter, effectuez des sauvegardes régulières de vos bases de données pour éviter toute perte de données accidentelle.

De plus, gardez à l’esprit que certaines configurations peuvent ne pas convenir à toutes les applications. Par exemple, augmenter la taille du cache ou activer le mmap peut consommer plus de ressources système, ce qui pourrait être problématique si votre serveur dispose de ressources limitées.

Vous devriez également aimer

Pourquoi Filament V3 change-t-il la donne pour les développeurs Laravel ?

Tailwind CSS v4.0 : La révolution de la productivité Front-End

JavaScript Temporal : La révolution de la gestion des dates enfin arrivée

Pourquoi TypeScript est l’avenir du développement web

VSCode et npm : la menace des extensions frauduleuses

TAG : database, framework laravel, laravel, sqlite
Partager cet article
Facebook Twitter LinkedIn Copier le lien Imprimer
Qu´en avez-vous pensé ?
Ennuyant0
Triste0
Révoltant0
Drôle0
Accablant0
Plaisant0
Malin0
Surprenant0
Waouh0
Article précédent Raspberry Pi : La nouvelle caméra AI à 70 $
Article suivant Pi-Hole : Bloquez les pubs et trackers sur votre réseau

Restez connecté

Facebook Like
Twitter Suivre
Instagram Suivre
Youtube S´inscrire
banner banner
Faites confiance à BBND
Développez tous vos projets digitaux grâce à une équipe d'experts
En savoir plus

Dernières actualités

Illustration représentant Rclone, un outil de synchronisation cloud en ligne de commande, avec une icône de cloud et flèches de transfert
Rclone : Guide complet pour synchroniser, sauvegarder et monter vos fichiers cloud
Technologie
Schéma comparatif entre IPMI, PiKVM et NanoKVM pour le contrôle à distance
IPMI, PiKVM ou NanoKVM : Quelle solution KVM choisir ?
Hardware
Des packages npm malveillants compromettent Cursor, volent des identifiants et cryptomonnaies, et déploient des chevaux de Troie. Détail des campagnes.
Une faille dans Cursor : plus de 3 200 développeurs infectés via des packages npm malveillants
Cybersécurité
Filament v3 laravel
Pourquoi Filament V3 change-t-il la donne pour les développeurs Laravel ?
Développement Web
//

Le blog BBND
Actualités et nouvelles tendances du numérique

Catégories news

  • Actualités Numériques
  • Blockchain
  • Business Intelligence
  • Cybersécurité
  • Data
  • Développement Web
  • Intelligence Artificielle
  • Hardware
  • Mobile
  • Technologie
  • Web Design
  • Web Marketing

Notre société

  • Qui sommes-nous
  • Initiatives
  • Réalisations
  • Formations
  • Recrutement
  • Contact

Liens utiles

  • Mentions légales
  • CGV
  • Politique de confidentialité

Nos services

  • Développement web/mobile/desktop
  • SEO
  • Stratégie de communication & Community management
  • Audit d’ergonomie
  • Solutions de cybersécurité
  • Outils de cybersécurité
  • E-droit & E-réputation
  • Innovation de service & Innovation technologique
  • Intelligence Artificielle & Business Intellligence
  • Design graphique
  • Jeux mobile
  • Motion design
  • Impression tout support
Le Blog de BBND – Actualités et nouvelles tendances du webLe Blog de BBND – Actualités et nouvelles tendances du web
Suivez-nous

© 2023 BBND. All Rights Reserved.

Un projet digital ?

Notre équipe d'experts couvre de larges domaines du numérique

Contactez-nous pour nous en faire part !

Supprimé de la liste de lecture

Annuler
Welcome Back!

Sign in to your account

Mot de passe perdu ?