sql >> Database >  >> RDS >> Mysql

Wat is het verschil tussen MySQLdb, mysqlclient en MySQL-connector/Python?

MySQLdb is een dunne python-wrapper rond C-module die API voor MySQL-database implementeert.

Er was MySQLDb1 versie van wrapper die enige tijd geleden werd gebruikt en nu wordt beschouwd als een erfenis. Toen MySQLDb1 begon te evolueren naar MySQLDb2 met bugfixes en Python3-ondersteuning werd een MySQLDb1 geforked en hier is hoe mysqlclient verscheen, met bugfixes en Python3-ondersteuning. Samenvattend, dus nu hebben we MySQLDb2 die niet klaar is voor productiegebruik, MySQLDb1 als een verouderd stuurprogramma en een door de gemeenschap ondersteunde mysqlclient met bugfixes en Python3-ondersteuning.

Om die puinhoop op te lossen, biedt MySQL hun eigen versie van MySQL-adapter - mysql-connector , een all-in python-module die gebruikmaakt van MySQL API met geen afhankelijkheden van C-modules en alleen standaard python-modules gebruikt.

Dus nu komt de vraag neer op:mysqlclient vs mysql connector.

Wat mij betreft, ik zou gaan voor een officieel ondersteunde bibliotheek, maar mysqlclient zou ook een goede keuze moeten zijn. Beiden worden actief bijgewerkt met fixes en nieuwe functies die je de laatste dagen kunt zien door actieve commits.

Opmerking:ik heb er niet veel ervaring mee, dus er kunnen gevallen zijn waarin een of ander niet aan uw behoeften voldoet. Beide bibliotheken volgen PEP-249 standaard, wat betekent dat je overal in orde zou moeten zijn met ten minste basisfunctionaliteit.

Installatie en afhankelijkheden

  • mysqlclient

Als een vork van C-wrapper vereist het C-modules om met MySQL te werken, die python-headerbestanden toevoegt om deze extensies te bouwen (lees python-dev). De installatie hangt af van het systeem dat u gebruikt, zorg er wel voor dat u de pakketnamen kent en deze kunt installeren.



  1. Python MySQL verkeerde architectuurfout

  2. Get rows product (vermenigvuldiging)

  3. Verzamelmethode:COUNT-functie in Oracle Database

  4. Aantal(*) versus Aantal(1) - SQL Server