IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

WordPress envisagerait de prendre en charge officiellement SQLite,
Afin de réduire les coûts d'hébergement et la consommation d'énergie des sites et blogues de petite taille

Le , par Bill Fassinou

36PARTAGES

6  0 
WordPress aurait commencé à envisager sérieusement le support de SQLite, une base de données plus légère que MySQL. Dans un billet de blogue lundi, Ari Stathopoulos, un des principaux contributeurs de WordPress, a expliqué le contexte et les raisons de cette décision. L'intéressé explique que MySQL n'est pas adapté pour certains scénarios et que les sites et blogues de petite et moyenne taille n'ont pas nécessairement besoin d'une base de données MySQL à part entière. L'équipe a donc conclu que SQLite semble être la solution idéale pour ces scénarios.

WordPress est un système de gestion de contenu (CMS) permettant d'héberger et de créer des sites Web. Il est le CMS le plus utilisé au monde. WordPress contient une architecture de plug-ins et un système de modèles, de sorte que vous pouvez personnaliser n'importe quel site Web pour l'adapter à votre entreprise, votre blogue, votre portfolio ou votre boutique en ligne. Selon le billet de blogue de Stathopoulos, le succès de WordPress s'explique en partie par le fait qu'il est extensible et qu'il peut être utilisé et modifié pour accomplir presque toutes les tâches sur le Web. Cependant, il y a un aspect de WordPress qui n'a jamais changé.

MySQL n'est pas adapté à certains cas d'utilisation de WordPress

Malgré l'augmentation des cas d'utilisation et de la popularité de WordPress, la base de données est restée la même. Le CMS nécessite l'installation de MySQL/MariaDB sur un site. Mais MySQL n'est sans doute optimal que pour certains scénarios : les sites de taille moyenne. Les grands sites mettent généralement en œuvre des piles de bases de données personnalisées en fonction de leurs besoins spécifiques. À l'extrémité inférieure du spectre, on trouve les sites simples et de petite taille. Ils sont nombreux et comprennent tous les blogues, les pages d'entreprise et les sites qui n'ont pas des milliers d'utilisateurs ou des milliers de messages, etc.



L'équipe estime que ces sites n'ont pas toujours besoin de la complexité d'une base de données MySQL/MariaDB. La nécessité d'un serveur MySQL dédié augmente leur coût d'hébergement et la complexité de l'installation. Sur les serveurs bas de gamme, les performances sont également réduites puisque la même "boîte" doit accueillir à la fois un serveur PHP et un serveur MySQL/MariaDB. « Idéalement, WordPress nous permettrait de choisir le type de base de données lors de l'installation. Cela pourrait se faire à l'aide d'un guide d'installation, ou d'une simple constante dans wp-config.php », a écrit Stathopoulos dans son billet e blogue.

Pour ce faire, WordPress devrait disposer d'une couche d'abstraction de base de données. Il ne s'agit pas d'une idée innovante ou radicale dans l'espace CMS ; Drupal dispose d'une couche d'abstraction de base de données solide depuis plus d'une décennie. Laravel, Symfony et d'autres incluent également des ORM qui permettent d'utiliser plusieurs types de bases de données. Toutefois, l'équipe pense que construire une couche d'abstraction de base de données pour WordPress serait une tâche colossale - même si à un moment donné dans le futur, elle devra peut-être l'entreprendre pour assurer l'évolution continue et la longévité du projet.

Implémentation de SQLite dans WordPress Core

En attendant, l'équipe a pensé à une solution intermédiaire : SQLite. Stathopoulos estime que l'utilisation de SQLite dans WordPress est, à ce stade, simple. Il existe des implémentations qui existent et évoluent depuis plus de 8 ans. Ces dernières ont été testées de manière approfondie et fonctionneraient de manière transparente. Elles sont des fichiers wp-content/db.php que les utilisateurs peuvent ajouter à leur installation. Cependant, la plupart des gens ne les connaissent pas. Ils ne savent pas qu'ils ont la possibilité d'acheter un hébergement moins cher sans-mysql et d'installer WordPress en utilisant une base de données SQLite.

Mais selon Stathopoulos, ils ne devraient pas non plus avoir à le savoir. Après tout, ils veulent juste un simple site d'entreprise ou un blogue. WordPress envisage donc de supporter officiellement SQLite en incluant l'une des implémentations SQLite existantes dans WordPress Core. « Nous devrions nous assurer qu'elle est correctement testée et prise en charge, et en outre, sensibiliser et exposer l'option aux utilisateurs », a écrit Stathopoulos. Pourquoi cela devrait-il être dans Core et non dans un plug-in ? Stathopoulos explique que choisir un type de base de données est quelque chose qui devrait se faire lors de la première installation d'un site.

Ce n'est pas quelque chose qui devrait être fait après coup, car cela nécessiterait de migrer les données d'une base de données à une autre, ce qui peut souvent être complexe. WordPress inclut l'implémentation de MySQL dans le noyau, donc l'équipe estime que si elle doit supporter SQLite, alors cette implémentation devrait cohabiter avec l'implémentation de MySQL. La migration des données peut (et devrait) se faire dans un plug-in afin de faciliter les migrations pour les sites existants s'ils le souhaitent, mais le moteur de base de données lui-même appartient au noyau.

Quels seraient les avantages de la prise en charge de SQLite ?

Selon Stathopoulos, le support officiel de SQLite dans WordPress pourrait avoir de nombreux avantages. En voici quelques-uns :

  • des performances accrues sur les serveurs et les environnements bas de gamme ;
  • potentiel de croissance de WordPress sur des marchés où il n'a pas accès en raison des exigences du système ;
  • potentiel de croissance sur le marché de l'hébergement en utilisant des "scénarios" d'installation ;
  • réduction de la consommation d'énergie - durabilité accrue pour le projet WordPress ;
  • poursuite de la mission de WordPress visant à "démocratiser l'édition" pour tous ;
  • plus facile de contribuer à WordPress - télécharger les fichiers et exécuter le serveur PHP intégré sans autre configuration requise ;
  • suite de tests automatisés plus facile à utiliser ;
  • les sites peuvent être "portables" et autonomes.


La prise en charge officielle de SQLite par WordPress a été discutée au WordCamp Europe 2022 en juin de cette année, et le projet semble avoir été lancé au WordCamp US 2022 le week-end dernier.

Source : Billet de blogue

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous de la décision de WordPress de prendre en charge SQLite ?
Quels seraient les avantages pour les utilisateurs et les développeurs ?

Voir aussi

La vulnérabilité d'un plug-in WordPress a ouvert un million de sites à une prise de contrôle à distance, cette faille permet à toute personne non identifiée d'accéder aux informations sensibles

WordPress envisage de traiter FLoC de Google comme un problème de sécurité et pourrait le désactiver automatiquement des sites Web, le CMS rappelle qu'il alimente environ 41 % du Web

Les sites WordPress seraient piratés dans les secondes qui suivent l'émission des certificats TLS, les cybercriminels utilisent abusivement le protocole Certificate Transparency proposé par Google

Des milliers de sites Web utilisent un plug-in WordPress bogué qui permet une prise de contrôle complète d'un site, toutes les versions seraient concernées et il n'y a pas de correctif

Des portes dérobées ont été trouvées dans plus de 90 thèmes et plugins WordPress, affectant plus de 360 000 sites actifs, suite à une attaque massive de la chaîne d'approvisionnement

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de smarties
Expert confirmé https://www.developpez.com
Le 17/12/2022 à 14:20
C'est une bonne idée car les petits sites sans les commentaires n'ont pas besoin d'accès concurrents en écriture.
La migration de MySQL vers SQLite semble possible mais l'inverse n'est pas dit explicitement.
Pour les sauvegarde de BDD c'est aussi hyper simple avec SQLite
2  0 
Avatar de Depix
Membre régulier https://www.developpez.com
Le 13/09/2022 à 15:29
Ce serait vraiment bien. J'ai quelques sites wordpress presque statiques, et je serais heureux de me débarrasser de MySQL qui utilise beaucoup de ressources.
0  0 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 13/09/2022 à 15:35
Pas sur que le gain en performance versus MySQL soit si notable que ça, et encore faudra-il que les hébergeurs décident de le supporter.
0  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 13/09/2022 à 20:56
Ca risque pas de poser de problèmes aux plugins tiers ?
0  0 
Avatar de smarties
Expert confirmé https://www.developpez.com
Le 13/09/2022 à 21:38
C'est sur que MySQL c'est la grosse artillerie pour un site web qui ne possède que quelques articles ou qui a un faible trafic.

De plus SQLite est très rapide, les soucis de concurrence en écriture sur les petits sites devraient être rarissimes.

Je ne fais pas de PHP mais je pense que l'on doit pouvoir laisser une connexion ouverte/avoir un pool pour pouvoir passer les requêtes
0  0 
Avatar de esperanto
Membre émérite https://www.developpez.com
Le 14/09/2022 à 10:44
ça me paraît tellement évident que je m'étonne que ce ne soit pas encore le cas. Wordpress, c'est du blog, donc généralement maintenu par une seule personne, donc les avantages de MySQL en termes de concurrence ne s'appliquent pas ici. Sauf éventuellement pour un site unique hébergeant des milliers de blogs.

L'idée ici n'est pas seulement un gain en performances (quoi qu'on économise au moins le réseau ou à minima une communication inter-processus). Le principal avantage que je vois, c'est la rapidité du déploiement. Et je préfère les sites qui pratiquent l'auto-hébergement plutôt que les grandes plateformes centralisatrices, alors tout ce qui peut faciliter le déploiement est bon à prendre.

Je serais plus réservé en revanche si Drupal ou Joomla adoptaient un jour une politique similaire. Des problèmes de concurrence avec SQLite, j'ai pu en expérimenter (j'avais un site dont la version prod utilise Postgres mais j'avais rapidement testé une version SQLite pour le dev, j'ai vite laissé tomber)
0  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 14/09/2022 à 19:59
De toute façon, si ça abouti on pourra certainement choisir entre MySQL ou sqlite.
0  0 
Avatar de okegima
Futur Membre du Club https://www.developpez.com
Le 16/09/2022 à 8:58
Bien qu'il soit possible d'ajouter plusieurs site wordpress statiques sur la même base mysql si l'on veut réduire les coûts et la consommation. Avec des suffixs différents, ça passe. De plus, d'un point de vue maintenance c'est plus facile. Mais le revers, d'un point de vu sécurité, si ça plante ou si y a un hack, c'est tous les sites qui sont indisponibles.
0  0 
Avatar de floyer
Membre éclairé https://www.developpez.com
Le 18/12/2022 à 20:35
Effectivement, une base de données SQLite se sauvegarde très simplement : une simple copie de fichiers. (toutefois, si on sauve le fichier pendant une transaction, cela posera problème).

Avec Mariadb, on a mariabackup qui sauvegarde les fichiers et rejoue les transactions en cours, donc pas de problème de fichier corrompu même pendant une transaction. mysqldump fonctionne assez facilement aussi (mais la restauration et longue pour des grosses bases). Par contre, à la restauration, il faut recréer une base vide (create database ...), les droits associés (grant ...). Bref, tout n'est pas si simple.
0  0