Il est important de choisir la bonne base de données pour votre application, en particulier pour les applications backend qui sont en interface directe avec la base de données. De nombreuses options sont disponibles, chacune adaptée à certains cas d’utilisation et avec des prix, des vitesses et des options de mise à l’échelle différents.

Python est généralement utilisé dans des applications à forte intensité de données, car il dispose de bibliothèques puissantes pour la manipulation des données, de sorte que la base de données que vous utilisez pour une application Python est importante.

Cet article compare MariaDB à d’autres technologies de bases de données telles que MySQL et PostgreSQL et explique pourquoi il s’agit d’un excellent choix pour l’utilisation de Python.

Pourquoi MariaDB est-elle si adaptée à Python ?

Grâce à ses puissantes bibliothèques de manipulation de données et d’apprentissage automatique, Python est un langage de programmation populaire pour les praticiens des données – en particulier dans les domaines de l’ingénierie et de la science des données. Ces deux domaines traitent de grandes quantités de données, ce qui augmente les besoins en stockage, en mémoire et en puissance de traitement.

Les coûts de licence augmentent souvent avec la taille de vos données, il est donc logique d’utiliser une base de données open source. Vous pouvez également économiser de l’argent sur le matériel. Comme vous contrôlez totalement l’endroit où l’application est déployée, vous pouvez trouver les solutions les moins chères dans l’informatique dématérialisée ou sur site.

Il existe de nombreuses bases de données open source, notamment des bases de données relationnelles, NoSQL et graphiques. Les bases de données relationnelles sont généralement parfaites pour la structure et la cohérence, tandis que les bases de données NoSQL, qui permettent un développement rapide, sont conçues pour être plus flexibles.

Bien que Python fonctionne parfaitement avec les bases de données NoSQL, les bases de données relationnelles sont mieux adaptées à l’analyse et au traitement des données à grande échelle, qui sont des utilisations courantes de Python.

Comparons MariaDB avec d’autres bases de données relationnelles open source populaires.

MariaDB vs MySQL vs PostgreSQL

Les bases de données relationnelles open source les plus populaires sont MariaDB, SQLite, MySQL et PostgreSQL. Chacune possède un ensemble similaire de capacités techniques de base, mais MariaDB possède des caractéristiques uniques qui la rendent plus adaptée aux applications Python.

De plus, MariaDB est un logiciel libre et ses fonctionnalités ne dépendent donc pas d’une entité externe comme MySQL, qui appartient désormais à Oracle. Bien que la communauté open source puisse toujours suggérer et ajouter des fonctionnalités à MySQL, Oracle (qui possède une base de données concurrente) décide de son orientation.

En revanche, MariaDB a été créée après l’acquisition de MySQL par Oracle afin de poursuivre une approche de développement dirigée par la communauté. Par conséquent, MariaDB dispose d’un ensemble de fonctionnalités plus riche, notamment un plus grand nombre de moteurs de stockage qui garantissent de meilleures performances pour les requêtes et la réplication que MySQL. Cette amélioration des performances est importante lorsque vous travaillez avec de grands ensembles de données.

Les raisons d’utiliser MariaDB plutôt que PostgreSQL sont un peu plus nuancées, car PostgreSQL est également piloté par la communauté. Cependant, PostgreSQL utilise sa propre licence de type BSD, la licence PostgreSQL, qui est plus permissive que la licence GNU de MariaDB et qui permet aux utilisateurs de créer des extensions à code source fermé.

Bien qu’elles profitent à l’utilisateur qui crée l’extension, ces fonctionnalités ne sont pas toujours utilisées dans la base de données principale de PostgreSQL, et les développeurs peuvent même faire payer l’utilisation de leurs extensions. Les licences GNU de MariaDB et MySQL ne permettent pas de privatiser de nouvelles fonctionnalités – toutes les nouvelles fonctionnalités sont disponibles gratuitement.

MariaDB et PostgreSQL possèdent les ensembles de fonctionnalités les plus riches. Cependant, MariaDB dispose de certaines fonctionnalités pratiques pour un backend Python. Par exemple, MariaDB utilise un seul langage pour s’interfacer avec tous ses différents moteurs de stockage – les systèmes OLAP et OLTP sont contrôlés avec la même syntaxe, ce qui réduit la charge de travail des développeurs.

Votre backend Python peut écrire des données de type transactionnel dans MariaDB, qui peut copier ces données dans un moteur de stockage mieux adapté aux requêtes analytiques. Les développeurs peuvent écrire des requêtes analytiques sur la réplique en utilisant la même syntaxe pour améliorer les performances.

MariaDB a également introduit récemment un formatage de type f-String pour les chaînes, similaire à celui de Python. Cela évite aux développeurs qui utilisent MariaDB avec Python de passer mentalement d’un langage à l’autre.

Connecteur MariaDB Python

Avant 2020, les programmeurs Python se connectaient à MariaDB via le package MySQL Python. Cela était possible parce que MariaDB est un dérivé de MySQL, mais cela signifiait que les connexions MariaDB se comportaient de la même manière que MySQL.

En 2020, un connecteur MariaDB natif a été publié pour supprimer la dépendance à MySQL et donner plus de contrôle à la communauté MariaDB. Vous pouvez installer le connecteur avec pip, le gestionnaire de paquets de Python, et l’utiliser pour tous les cas d’utilisation CRUD courants.

Toutes les déclarations sont gérées par un objet cursor. Par défaut, le cursor MariaDB accepte les requêtes en tant qu’instructions préparées, ce qui vous permet d’assainir les parties dynamiques de la requête. Cette méthode est plus sûre que le formatage de chaînes de caractères pour construire des requêtes, qui rend votre application vulnérable aux attaques par injection SQL.

Fonctionnement du connecteur

Le connecteur est simple à utiliser. Tout d’abord, vous importez la bibliothèque du connecteur MariaDB dans votre application et utilisez la fonction suivante pour vous connecter à votre serveur de base de données MariaDB :

import mariadb

try:
    connection = mariadb.connect(
        user=username,
        password=password,
        host=mariadb_host,
        port=3306,
        database="sales"

    )
except mariadb.Error as err:
    print(f"An error occurred whilst connecting to MariaDB: {err}")

Une fois connecté, toutes les requêtes sont exécutées par l’intermédiaire d’un objet curseur. Vous obtenez l’objet cursor, puis vous l’utilisez pour soumettre des requêtes.

cursor = conn.cursor() 

Pour soumettre une requête en tant qu’instruction préparée, utilisez un point d’interrogation comme espace réservé dans le texte de la requête et transmettez les valeurs requises sous la forme d’un tuple.

ur.execute( "SELECT * FROM sales WHERE sale_date >= ? and price > ?", (sale_date_val, price_val)) 

Les valeurs d’entrée du tuple remplacent les points d’interrogation dans l’ordre, de gauche à droite. Ces valeurs d’entrée sont également assainies afin d’éviter les injections SQL. La protection intégrée contre l’injection SQL est bénéfique pour un langage comme Python, conçu pour les programmeurs débutants.

Python et MariaDB pour WordPress

Un autre avantage de l’utilisation de MariaDB comme backend pour votre application Python est qu’il est facile de connecter la base de données à un frontend WordPress, en particulier lorsque vous utilisez Kinsta.

Kinsta supporte MariaDB comme base de données backend, ce qui les rend instantanément compatibles. Votre site WordPress peut facilement accéder à des ensembles de données traitées en Python. Par exemple, vous pouvez effectuer une analyse en Python, stocker les résultats dans MariaDB, puis les afficher sous forme de graphique sur une page WordPress.

Kinsta fournit également une plateforme de développement appelée DevKinsta pour développer une solution de bout en bout. Avec DevKinsta, vous pouvez utiliser votre machine locale pour mettre en place un site WordPress avec un backend MariaDB, qui peut ensuite être poussé vers Kinsta une fois qu’il est prêt à être mis en ligne. Cette intégration simplifie la mise en place d’un site avec une base de données MariaDB – votre site web peut être mis en ligne en quelques clics.

Résumé

Plusieurs bases de données relationnelles open source, dont MariaDB, MySQL et Postgres, peuvent servir de backend Python. Cependant, MariaDB est l’option la plus flexible et la plus riche en fonctionnalités, grâce à sa nature open source.

Lorsque vous travaillez avec de grands ensembles de données, MariaDB fournit de nombreux moteurs de stockage, ce qui le rend plus rapide que les autres solutions, et prend en charge de nombreux cas d’utilisation, du traitement transactionnel aux requêtes analytiques. La flexibilité, la vitesse et l’intégration native de Python avec le connecteur MariaDB Python en font un excellent choix comme backend pour les applications Python qui traitent de grands ensembles de données.

De plus, MariaDB peut s’intégrer directement dans un frontend WordPress, rendant vos données accessibles à votre site web. La prise en charge de MariaDB par Kinsta facilite cette intégration. Avec DevKinsta, vous pouvez configurer votre site WordPress pour utiliser MariaDB sur votre machine locale avant de déployer la solution via Kinsta.

Essayez gratuitement notre hébergement de base de données.

Jeremy Holcombe Kinsta

Content & Marketing Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems ;).