2009-10-25 16 views
10

Dos bibliotecas para Mysql. Siempre he usado _mysql porque es más simple.Python: ventajas y ventajas de _mysql vs MySQLdb?

¿Alguien me puede decir la diferencia y por qué debo usar cuál en ciertas ocasiones?

+0

creo que este será sin duda de interés ... http://charlesnagy.info/it/python/python-mysqldb-vs-mysql-connector-query-performance – Eugene

Respuesta

13

MySQLdb usa DB-API (descrito en PEP 249) que debería ser el preferido, ya que es común para todos los controladores de bases de datos. En mi humilde opinión, no hay ninguna ventaja en ir a bajo nivel con _mysql. Preferiría pensar en usar bibliotecas de nivel superior, como SQLAlchemy, en su lugar.

+2

'_mysql' necesita existir para conecta el api de nivel superior a las bibliotecas de C. El '_' debería ser una pista de que generalmente no deberías usarlo. –

+4

no relacionado. Lindo gato. –

4

_mysql es el mapeo uno a uno de la API aproximada de mysql. Además de eso, la DB-API está construida, manejando cosas usando cursores, etc.

Si está acostumbrado a la API mysql de bajo nivel proporcionada por libmysqlclient, entonces el módulo _mysql es lo que necesita, pero como dice otra respuesta, no es necesario ir tan bajo. Puede trabajar con la API DB y comportarse bien, con la ventaja adicional de que DB-API es independiente del backend.

8

Como alternativa, puede utilizar MySQL Connector/Python:

MySQL Connector/Python es la implementación del protocolo MySQL cliente/servidor completamente en Python. Esto significa que no tiene que compilar nada o MySQL ni siquiera tiene que estar instalado en la máquina.