2009-10-25 14 views
10

Dwie biblioteki dla MySQL. Zawsze używałem _mysql, ponieważ jest prostsze.Python: zalety i niepowodzenia programu _mysql vs MySQLdb?

Czy ktoś może mi powiedzieć, jaka jest różnica i dlaczego powinienem użyć jej w niektórych sytuacjach?

+0

myślę, że to z pewnością zainteresuje ... http://charlesnagy.info/it/python/python-mysqldb-vs-mysql-connector-query-performance – Eugene

Odpowiedz

13

MySQLdb używa DB-API (opisany w PEP 249), który powinien być preferowany, ponieważ jest wspólny dla wszystkich sterowników baz danych. IMHO nie ma żadnej korzyści przechodząc na niskopoziomowe z _mysql. Wolałbym raczej używać bibliotek wyższych poziomów, takich jak SQLAlchemy.

+2

'_mysql' musi istnieć, aby podłącz api wyższego poziomu do bibliotek C. '_' powinno być wskazówką, że zwykle nie powinieneś go używać. –

+4

niepowiązanych. Fajny kot. –

4

_mysql to odwzorowanie typu jeden-do-jednego przybliżonego interfejsu API mysql. Na dodatek zbudowany jest interfejs DB-API, obsługujący różne rzeczy za pomocą kursorów i tak dalej.

Jeśli jesteś przyzwyczajony do niskiego poziomu interfejsu mysql API dostarczonego przez libmysqlclient, to potrzebujesz modułu _mysql, ale jak mówi inna odpowiedź, nie ma takiej potrzeby, aby przejść tak niski poziom. Możesz pracować z DB-API i zachowywać się dobrze, z dodatkową korzyścią, że DB-API jest niezależny od backendu.

8

Alternatywnie, można użyć MySQL Connector/Python:

MySQL Connector/Python realizuje protokół MySQL Client/Server całkowicie w Pythonie. Oznacza to, że nie musisz niczego kompilować, a MySQL nie musi nawet być zainstalowany na komputerze.