sql >> Database teknologi >  >> RDS >> Mysql

Hvad er forskellen mellem MySQLdb, mysqlclient og MySQL connector/Python?

MySQLdb er en tynd python-indpakning omkring C-modul, som implementerer API til MySQL-database.

Der var MySQLDb1 version af wrapper brugt for noget tid siden, og nu anses det for at være en arv. Da MySQLDb1 begyndte at udvikle sig til MySQLDb2 med fejlrettelser og Python3-understøttelse blev en MySQLDb1 forfalsket, og her er hvordan mysqlclient dukkede op med fejlrettelser og Python3-understøttelse. Sammenfattende, så nu har vi MySQLDb2, som ikke er klar til produktionsbrug, MySQLDb1 som en forældet driver og en community-understøttet mysqlclient med fejlrettelser og Python3-understøttelse.

For at løse det rod giver MySQL deres egen version af MySQL-adapteren - mysql-stik , et alt-i-python-modul, der bruger MySQL API med ingen C-modulafhængigheder og kun standard python-moduler brugt.

Så nu kommer spørgsmålet ned til:mysqlclient vs mysql connector.

Hvad mig angår, ville jeg gå med et officielt understøttet bibliotek, dog mysqlclient bør også være et godt valg. Begge af dem bliver aktivt opdateret med rettelser og nye funktioner, som du kan se ved aktive commits i de sidste dage.

Bemærk:Jeg havde ikke meget erfaring med dem, så der kan være tilfælde, hvor det ene eller det andet ikke passer til dine behov. Begge biblioteker følger PEP-249 standard, hvilket betyder, at du skal have det fint med mindst basisfunktionalitet overalt.

Installation og afhængigheder

  • mysqlclient

Som en fork af C-indpakning kræver det C-moduler for at arbejde med MySQL, som tilføjer python-header-filer til at bygge disse udvidelser (læs python-dev). Installationen afhænger af det system, du bruger, bare sørg for, at du er opmærksom på pakkenavne og kan installere dem.



  1. En tilgang til indeksjustering – del 1

  2. Beregning af afstand mellem to punkter (breddegrad, længdegrad)

  3. mysql - INDSÆT datointerval i datokolonner, HVIS datoer ikke overlapper med eksisterende

  4. Fejl 1130 i mysql