Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é a diferença entre MySQLdb, mysqlclient e conector MySQL/Python?


MySQLdb é um wrapper python fino em torno do módulo C que implementa a API para o banco de dados MySQL.

Havia MySQLDb1 versão do wrapper usada há algum tempo e agora é considerada um legado. À medida que o MySQLDb1 começou a evoluir para MySQLDb2 com correções de bugs e suporte a Python3, um MySQLDb1 foi bifurcado e aqui está como mysqlclient apareceu, com correções de bugs e suporte a Python3. Resumindo, agora temos MySQLDb2 que não está pronto para uso em produção, MySQLDb1 como um driver desatualizado e um mysqlclient suportado pela comunidade com correções de bugs e suporte a Python3.

Agora, para resolver essa bagunça, o MySQL fornece sua própria versão do adaptador MySQL - conector mysql , um módulo python completo que usa a API MySQL com sem dependências de módulos C e apenas módulos python padrão usados.

Então agora a questão se resume a:mysqlclient vs mysql connector.

Quanto a mim, eu iria com a biblioteca oficialmente suportada, no entanto mysqlclient deve ser uma boa escolha também. Ambos estão sendo atualizados ativamente com correções e novos recursos que você pode ver por commits ativos nos últimos dias.

Nota:eu não tenho muita experiência com eles, então pode haver casos em que um ou outro não atenda às suas necessidades. Ambas as bibliotecas seguem PEP-249 padrão, o que significa que você deve estar bem com pelo menos a funcionalidade básica em todos os lugares.

Instalação e dependências
  • cliente mysql

Como um fork do wrapper C, ele requer módulos C para trabalhar com o MySQL, que adiciona arquivos de cabeçalho python para construir essas extensões (leia python-dev). A instalação depende do sistema que você usa, apenas certifique-se de conhecer os nomes dos pacotes e poder instalá-los.