Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelle est la différence entre MySQLdb, mysqlclient et le connecteur MySQL/Python ?

MySQLdb est un wrapper python fin autour du module C qui implémente l'API pour la base de données MySQL.

Il y avait MySQLDb1 version de wrapper utilisée il y a quelque temps et maintenant elle est considérée comme un héritage. Lorsque MySQLDb1 a commencé à évoluer vers MySQLDb2 avec des corrections de bogues et la prise en charge de Python3, un MySQLDb1 a été créé et voici comment mysqlclient est apparu, avec des corrections de bogues et le support de Python3. En résumé, nous avons maintenant MySQLDb2 qui n'est pas prêt pour une utilisation en production, MySQLDb1 en tant que pilote obsolète et un mysqlclient pris en charge par la communauté avec des corrections de bogues et la prise en charge de Python3.

Maintenant, pour résoudre ce gâchis, MySQL fournit sa propre version de l'adaptateur MySQL - connecteur mysql , un module python tout-en-un qui utilise l'API MySQL avec aucune dépendance de module C et seuls les modules python standard utilisés.

Alors maintenant, la question se résume à :mysqlclient vs connecteur mysql.

Quant à moi, j'irais avec une bibliothèque officiellement prise en charge, cependant mysqlclient devrait également être un bon choix. Les deux sont activement mis à jour avec des correctifs et de nouvelles fonctionnalités que vous pouvez voir par les commits actifs des derniers jours.

Remarque :Je n'avais pas beaucoup d'expérience avec eux, il peut donc y avoir des cas où l'un ou l'autre ne répond pas à vos besoins. Les deux bibliothèques suivent PEP-249 standard, ce qui signifie que vous devriez être d'accord avec au moins les fonctionnalités de base partout.

Installation et dépendances

  • mysqlclient

En tant que fork de wrapper C, il nécessite que les modules C fonctionnent avec MySQL qui ajoute des fichiers d'en-tête python pour construire ces extensions (lire python-dev). L'installation dépend du système que vous utilisez, assurez-vous simplement que vous connaissez les noms des packages et que vous pouvez les installer.