Janvier 4 2023

Performances logicielles et choix de conception. Quand la Base de données est le goulot d'étranglement et PostgreSQL la solution à tous les maux.

Une brève analyse des problèmes logiciels courants dérivés du mauvais choix d'outils et en particulier du fait de préférer MySQL à PostgreSQL.

PostgreSQL-vs-MySQL

S'il y a une chose qui m'est restée à l'esprit dans la mise en scène que j'ai faite en cinquième année (il y a 23 ans) à Elettromeccanica Cognigni à Civitanova Marche, ce sont ces quelques mots significatifs "Les bons outils font déjà la moitié du travail" .

Cette phrase a été prononcée par le grand-père d'un de mes amis chers, qui avait l'habitude de venir rendre visite au propriétaire de l'entreprise et de parcourir ou de parler de ceci ou de cela, comme le font habituellement les personnes âgées qui ont le temps pendant la journée de cultiver leurs amitiés. et faire des visites ici et là.

J'étais en train de vider une armature d'un moteur électrique (un enroulement électrique) en battant le ciseau avec une pince remédiée, lorsque j'ai entendu ces mots retentissants et que j'ai ensuite été invité à utiliser un marteau.

Travail plus précis, plus rapide et plus confortable. Dans quelques semaines, le stage scolaire serait terminé et j'aurais terminé cette expérience au contact d'accumulateurs, de bobinages, de moteurs électriques, etc. précieux conseils et cette sentence solennelle prononcée à son effet est encore aujourd'hui l'une des pierres angulaires de mon métier, et plus largement de mon mode de vie.

On pourrait manger la soupe avec une fourchette, mais une cuillère c'est sûrement mieux.

Le problème avec les applications utilisant MySQL

Il y a un problème qui affecte presque tout le monde, impliquant principalement toutes les situations dans lesquelles vous devez faire face à des logiciels écrits par d'autres qui utilisent une base de données MySQL ou des forks connexes tels que MariaDB, Percona Server, qui sont en tout cas basés et dérivés de MySQL lui-même.

Lorsque nous travaillons avec des CMS tels que WordPress, WooCommerce, Magento, Prestashop et autres, nous finissons toujours par avoir affaire à un SGBDR tel que MySQL ou un dérivé, et il semble qu'il soit normal, juste et approprié d'avoir un SGBDR qui semble aussi extrêmement rapide et performant.

Le problème n'est pas un gros problème lorsque la base de données ne devient pas le goulot d'étranglement de notre application, et des performances qui affectent inévitablement l'expérience utilisateur, le référencement, le chiffre d'affaires et le profit de l'entreprise.

Bien qu'il ait pu améliorer considérablement la vitesse et les performances de MySQL au fil des ans, par exemple en passant de l'ancien moteur MyISAM vers InnoDB vous devez toujours vous demander si MySQL (ou les fourches associées) est la meilleure solution du marché en termes de fonctionnalités, de performances et de vitesse.

MySQL est extrêmement lent par rapport à PostgreSQL

Par exemple, si nous recherchions un SGBDR compatible avec SQL Standard qui soit open source, gratuit, bien supporté et documenté, multi-architecture, portable, extrêmement performant, nous exclurons sûrement les solutions commerciales et propriétaires à source fermée telles que Oracle DB, SQL Server ou DB2 d'IBM.

Cependant, nous pourrions et devrions envisager PostgreSQL ou simplement Postgres.

PostgreSQL est un puissant système de base de données relationnelle objet open source avec plus de 35 ans de développement actif qui lui a valu une solide réputation de fiabilité, de robustesse des fonctionnalités et de performances.

Aussi connu sous le nom Postgres , est un système de gestion de base de données relationnelle (RDBMS) libre et open source qui met l'accent sur l'extensibilité et la conformité SQL. Il s'appelait à l'origine POSTGRES, faisant référence à ses origines en tant que successeur de la base de données Ingres développée à l'Université de Californie à Berkeley. En 1996, le projet a été renommé PostgreSQL pour refléter sa prise en charge de SQL . Après une révision en 2007, l'équipe de développement a décidé de conserver le nom PostgreSQL et l'alias Postgres. 

PostgreSQL présente transactions avec Propriétés d'atomicité, de consistance, d'isolement, de durabilité (ACID), vues actualisables automatiquement, viste matérialisés , déclencheurs , clés étrangères et procédures stockées . Il est conçu pour gérer une grande variété de charges de travail, des machines uniques aux entrepôts de données ou aux services Web avec de nombreux utilisateurs simultanés. Il s'agit de la base de données par défaut pour macOS Server et est également disponible pour Windows, Linux, FreeBSD et OpenBSD.

Mais à quel point MySQL est-il lent par rapport à PostgreSQL ?

Ou plutôt, à quel point PostgreSQL est-il plus rapide que MySQL ?

Comment ai-je comparé les bases de données ?

  1. Quelle base de données a les écritures les plus rapides
  2. Quelle base de données a les lectures les plus rapides
  3. Quelle base de données a le moins de mémoire et d'utilisation du processeur

préparation

PostgreSQL

docker run --name postgres -e POSTGRES_PASSWORD=password -p 5433:5432 -v postgres_data:/var/lib/postgresql/data -d postgres:alpine

BD d'échelle de temps

docker run --name timescale -e POSTGRES_PASSWORD=password -p 5434:5432 -v timescale_data:/var/lib/postgresql/data -d timescale/timescaledb:latest-pg12

MySQL

docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 -v mysql_data:/var/lib/mysql -d mysql:latest

MariaDB

docker run --name mariadb -e MYSQL_ROOT_PASSWORD=password -p 3307:3306 -v mariadb_data:/var/lib/mysql -d mariadb:latest

Serveur Percona

docker run --name percona -e MYSQL_ROOT_PASSWORD=password -p 3308:3306 -v percona_data:/var/lib/mysql -d percona:ps-8

Première comparaison

D'après ces résultats, il apparaît que PostgreSQL est le gagnant et SQL Server le perdant. Mais nous n'avons pas encore fait de tests de lecture et/ou d'écriture.

Rédaction de repères.

Écrire des benchmarks de SGBD SQL

Repères de lecture.

Lire les benchmarks du SGBD SQL

La famille de moteurs Postgres est environ deux fois plus rapide que la famille de moteurs MySQL.

Pourquoi MySQL est-il plus utilisé et populaire que PostgreSQL ?

MySQL est l'un des systèmes de gestion de bases de données les plus populaires au monde, bien que ses performances ne soient pas comparables à d'autres bases de données telles que PostgreSQL. Il y a plusieurs raisons pour lesquelles MySQL est plus populaire que PostgreSQL, malgré les performances supérieures de ce dernier.

En premier lieu, MySQL a une histoire plus longue que PostgreSQL et a donc eu plus de temps pour se répandre et devenir populaire. MySQL est sorti pour la première fois en 1995, tandis que PostgreSQL est sorti en 1996. Cela signifie que MySQL avait un an de plus pour se répandre et se faire connaître des programmeurs et des professionnels de l'industrie.

De plus, MySQL est souvent inclus comme composant par défaut dans de nombreux systèmes d'exploitation et piles de développement, ce qui le rend facilement accessible à quiconque a besoin d'une base de données. De plus, MySQL dispose d'une documentation très complète et d'une forte présence en ligne, ce qui le rend facile à apprendre et à utiliser pour les programmeurs novices.

Enfin, MySQL est souvent choisi par les entreprises en raison de sa simplicité et de sa capacité à traiter de grandes quantités de données. MySQL ne nécessite pas de connaissances avancées en administration système et peut facilement gérer de grandes quantités de données, ce qui le rend idéal pour les entreprises qui ont besoin d'une base de données évolutive et facile à gérer.

Impact environnemental de PostgreSQL par rapport à MySQL.

L'utilisation de PostgreSQL au lieu de MySQL pourrait avoir un impact positif sur l'environnement. PostgreSQL est connu pour son efficacité et sa rapidité, ce qui signifie qu'il peut gérer de grandes quantités de données avec moins de consommation de ressources que MySQL. Cela peut entraîner une réduction des émissions de CO2, car les serveurs utiliseront moins d'énergie pour effectuer les mêmes tâches.

L'utilisation de PostgreSQL plutôt que MySQL pourrait signifier, par exemple, réduire le nombre de serveurs au sein d'une organisation, éviter l'utilisation de clusters MySQL pour compenser les problèmes de performances, ainsi qu'éviter un remplacement ou une mise à niveau du matériel à la fois pour la mise à l'échelle verticale (augmentation des ressources sur une seule machine), et pour la mise à l'échelle horizontale, c'est-à-dire l'augmentation des nœuds et des machines.

Conclusions.

Nous avons vu comment, sur la base des benchmarks mentionnés ci-dessus, PostgreSQL est décidément meilleur et plus recommandé pour une série d'avantages à la fois en termes de performances et de vitesse et dans l'utilisation plus efficace de la mémoire, sans avoir à renoncer à l'open source ou à un système de licence libre qui permet de l'adopter sans restriction sur les logiciels et applications libres.

On se demande donc pourquoi et pourquoi de nombreuses réalités, y compris les CMS les plus utilisés tels que WordPress, Prestashop, Magento, Joomla, ont décidé de continuer à utiliser un SGBD tel que MySQL et dérivés qui en fait n'a pas ce calibre et ces exigences telles que make il est agréable au goût par rapport à l'homologue PostgreSQL.

De nombreuses considérations concernant l'efficacité du logiciel ainsi que l'impact sur la consommation et sur l'environnement reviendraient si l'on considère ce raisonnement appliqué à grande échelle, permettant par exemple de réduire le nombre de nœuds dans un cluster ou d'éviter dans certains cas de mise à l'échelle horizontale ou verticale pour remédier à l'inefficacité de la base de données.

Cependant, à l'exception de quelques projets sporadiques plutôt immatures à utiliser en production avec les garanties nécessaires, il ne semble toujours pas y avoir d'avenir pour que PostgreSQL soit utilisé comme backend pour les CMS les plus populaires mentionnés ci-dessus.

Vraiment dommage quand on sait que le degré de maturité de PostgreSQL est si élevé qu'il n'a pratiquement pas de rival (sauf peut-être Oracle DB).

 

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous


Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

ManagedServer.it est le premier fournisseur italien de solutions d'hébergement hautes performances. Notre modèle d'abonnement est abordable et prévisible, afin que les clients puissent accéder à nos technologies d'hébergement fiables, à nos serveurs dédiés et au cloud. ManagedServer.it offre également d'excellents services d'assistance et de conseil sur l'hébergement des principaux CMS Open Source tels que WordPress, WooCommerce, Drupal, Prestashop, Magento.

JUSTE UN MOMENT !

Souhaitez-vous voir comment votre WooCommerce fonctionne sur nos systèmes sans avoir à migrer quoi que ce soit ? 

Entrez l'adresse de votre site WooCommerce et vous obtiendrez une démonstration navigable, sans avoir à faire absolument quoi que ce soit et entièrement gratuite.

Non merci, mes clients préfèrent le site lent.
Remonter en haut