Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist der Unterschied zwischen MySQLdb, mysqlclient und MySQL-Connector/Python?

MySQLdb ist ein dünner Python-Wrapper um das C-Modul, der die API für die MySQL-Datenbank implementiert.

Es gab MySQLDb1 Version des Wrappers, die vor einiger Zeit verwendet wurde und jetzt als Vermächtnis betrachtet wird. Als sich MySQLDb1 zu MySQLDb2 entwickelte mit Fehlerkorrekturen und Python3-Unterstützung wurde eine MySQLDb1 gegabelt und hier ist, wie mysqlclient erschienen, mit Bugfixes und Python3-Unterstützung. Zusammenfassend haben wir also MySQLDb2, das noch nicht für den Produktionseinsatz bereit ist, MySQLDb1 als veralteten Treiber und einen von der Community unterstützten mysqlclient mit Fehlerbehebungen und Python3-Unterstützung.

Um dieses Durcheinander zu lösen, bietet MySQL nun eine eigene Version des MySQL-Adapters an - Mysql-Connector , ein All-in-Python-Modul, das die MySQL-API ohne keine Abhängigkeiten von C-Modulen verwendet und nur Standard-Python-Module verwendet.

Jetzt kommt die Frage auf:mysqlclient vs. mysql connector.

Was mich betrifft, würde ich die offiziell unterstützte Bibliothek verwenden, jedoch mysqlclient sollte ebenfalls eine gute Wahl sein. Beide werden aktiv mit Korrekturen und neuen Funktionen aktualisiert, was Sie an aktiven Commits in den letzten Tagen sehen können.

Hinweis:Ich habe nicht viel Erfahrung damit, daher kann es Fälle geben, in denen das eine oder andere nicht Ihren Anforderungen entspricht. Beide Bibliotheken folgen PEP-249 Standard, was bedeutet, dass Sie überall mit mindestens der Basisfunktionalität auskommen sollten.

Installation und Abhängigkeiten

  • mysqlclient

Als Fork des C-Wrappers erfordert es C-Module, um mit MySQL zu arbeiten, das Python-Header-Dateien hinzufügt, um diese Erweiterungen zu erstellen (lesen Sie python-dev). Die Installation hängt von dem von Ihnen verwendeten System ab. Stellen Sie einfach sicher, dass Sie die Paketnamen kennen und diese installieren können.