MySQLdb jest cienkim opakowaniem Pythona wokół modułu C, który implementuje API dla bazy danych MySQL.
Był MySQLDb1 wersja wrappera używana jakiś czas temu, a obecnie uważana za spuściznę. Gdy MySQLDb1 zaczął ewoluować do MySQLDb2 z poprawkami błędów i obsługą Python3, MySQLDb1 został rozwidlony i oto jak mysqlclient pojawił się, z poprawkami błędów i obsługą Python3. Podsumowując, teraz mamy MySQLDb2, który nie jest gotowy do użytku produkcyjnego, MySQLDb1 jako przestarzały sterownik oraz wspierany przez społeczność mysqlclient z poprawkami błędów i obsługą Python3.
Teraz, aby rozwiązać ten bałagan, MySQL udostępnia własną wersję adaptera MySQL - złącze mysql , wszechstronny moduł Pythona, który korzysta z interfejsu API MySQL z bez zależności między modułami C i używane są tylko standardowe moduły Pythona.
Więc teraz pytanie sprowadza się do:mysqlclient vs mysql connector.
Jeśli chodzi o mnie, wybrałbym oficjalnie obsługiwaną bibliotekę, jednak mysqlclient
powinien być również dobrym wyborem. Oba z nich są aktywnie aktualizowane o poprawki i nowe funkcje, które można zobaczyć po aktywnych zatwierdzeniach w ostatnich dniach.
Uwaga:nie mam z nimi dużego doświadczenia, więc mogą się zdarzyć przypadki, gdy jeden lub drugi nie odpowiada Twoim potrzebom. Obie biblioteki podążają za PEP-249 standardowo, co oznacza, że wszędzie powinno wystarczyć przynajmniej podstawowa funkcjonalność.
Instalacja i zależności
- mysqlclient
Jako rozwidlenie wrappera C wymaga modułów C do pracy z MySQL, który dodaje pliki nagłówkowe Pythona do budowania tych rozszerzeń (czytaj python-dev). Instalacja zależy od używanego systemu, po prostu upewnij się, że znasz nazwy pakietów i możesz je zainstalować.
- złącze mysqlDokumentacja główna jest dość jasne, jednak należy pamiętać o Protobuf C++ zależność (dla konektora mysql wersje>=2.2.3 ).