sql >> データベース >  >> RDS >> Mysql

MySQLdb、mysqlclient、MySQLコネクタ/ Pythonの違いは何ですか?

    MySQLdb MySQLデータベース用のAPIを実装するCモジュールの薄いPythonラッパーです。

    MySQLDb1 がありました しばらく前に使用されていたラッパーのバージョンで、現在はレガシーと見なされています。 MySQLDb1がMySQLDb2 に進化し始めたとき バグ修正とPython3のサポートにより、MySQLDb1がフォークされました。これが、mysqlclient の方法です。 バグ修正とPython3サポートで登場しました。要約すると、本番環境で使用する準備ができていないMySQLDb2、古いドライバーとしてのMySQLDb1、バグ修正とPython3サポートを備えたコミュニティサポートのmysqlclientがあります。

    さて、その混乱を解決するために、MySQLは独自のバージョンのMySQLアダプターを提供します-mysqlコネクタCモジュールの依存関係なしでMySQLAPIを使用するオールインPythonモジュール 標準のPythonモジュールのみが使用されます。

    だから今、質問は次のようになります:mysqlclientvsmysqlconnector。

    私の場合、公式にサポートされているライブラリを使用しますが、mysqlclient どちらも、過去数日間のアクティブなコミットで確認できる修正と新機能でアクティブに更新されています。

    注:私はそれらについてあまり経験がなかったので、どちらかがあなたのニーズに合わない場合があるかもしれません。どちらのライブラリもPEP-249 に従います。 標準。つまり、少なくとも基本的な機能はどこでも問題ないはずです。

    インストールと依存関係

    • mysqlclient

    Cラッパーのフォークとして、これらの拡張機能を構築するためにPythonヘッダーファイルを追加するMySQLと連携するCモジュールが必要です(python-devを読んでください)。インストールは使用するシステムによって異なります。パッケージ名を知っていて、それらをインストールできることを確認してください。

    • mysqlコネクタメインドキュメント はかなり明確ですが、 Protobuf C++ に注意する必要があります。 依存関係(mysqlコネクタの場合バージョン>=2.2.3


    1. 既存のテーブルの列に一意の制約を作成する方法-SQLServer/TSQLチュートリアルパート97

    2. 日時から時間をトリミングする最も効率的な方法は何ですか?

    3. MySQL for Visual Studioのインストールに失敗しました、エラーコード1603

    4. OracleSQLで一重引用符を処理する方法