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

PyPy、Django、PostgreSQLをどのように連携させるのですか?

    psycopg2cffi(2015年更新)

    psycopg2cffiは、さらに別のpsycopg2互換の代替品であり、PyPyで最高のPostgreSQLパフォーマンスを提供するはずです。これをsettings.pyに追加します 両方との互換性を維持するには:

    try:
        import psycopg2
    except ImportError:
        # Fall back to psycopg2cffi
        from psycopg2cffi import compat
        compat.register()
    

    psycopg2-ctypes(2012)

    また、psycopg2-ctypesを使用している人もいることも知っています。

    これが最も簡単な方法です。両方との互換性を維持するには、このコードをDjango settings.pyに追加するだけです。 :

    try:
        import psycopg2
    except ImportError:
        # Fall back to psycopg2-ctypes
        from psycopg2ct import compat
        compat.register()
    

    私はこれを数リリース前にテストしました。悲しいことに、私の経験では、psycopg2-ctypesは、PyPyによってもたらされるわずかなパフォーマンスの向上を打ち消します。しかし、YMMVは、コードが一般的にJITにどの程度適しているか、およびPythonコードの実行に実際に費やす時間の割合によって異なります。そして、おそらくPyPyはそれ以来改善されたばかりです。

    psycopg2-ctypesはまだWindowsに対応しているとは思いません

    私はこれを試していませんが、ctypesはプラットフォームに依存しません。 AFAICTは、libpq.dll ライブラリはロード可能であり(PATH環境変数のディレクトリまたはローカルディレクトリにあります)、Linuxと同じようにWindowsでも機能するはずです。

    pypy-postgresql

    AlexGaynorがpypy-postgresqlと呼ばれるPyPyのフォークを作成したことは確かです。

    長期的にはこれは良い選択ではないと思います。ブランチは1年以上更新されておらず、ビルドの試みは失敗しました。とにかく、インタープリターでPostgreSQLドライバーをハードコーディングするのは間違っているようです。

    pypy-postgresqlにもバイナリはないと思います。したがって、それを使用する場合は、PyPyブランチ全体を自分で構築する必要があります。気の弱い人向けではありません。数十分かかり、少なくとも4GBのメモリを搭載したマシンです。 (公式の手順:http://pypy.org/download.html#building-from-source)

    ビルドするには、最初にソースが必要です。 Mercurialをインストールしている場合は、hg clone https://bitbucket.org/alex_gaynor/pypy-postgresqlを実行できます。 。そうでない場合は、automagicの「tip」zipファイルをダウンロードできます:https://bitbucket.org/alex_gaynor/pypy-postgresql/get/tip.zip

    コマンドラインを開き、解凍されたディレクトリに移動して、pypy/translator/goal内に移動します。

    PyPyをインストールしている場合は、それをビルドに使用することをお勧めします:

    pypy translate.py -Ojit
    

    それ以外の場合:

    python translate.py -Ojit
    

    悲しいことに、これが私の知識の終わりです。 「BytecodeCorruption: unimplemented opcode, ofs=234, code=203, name=BUILD_LIST_FROM_ARG」というエラーが表示されます "



    1. 最短時間で1,000万件のレコードを挿入するにはどうすればよいですか?

    2. OracleのRANK、DENSE_RANK、およびROW_NUMBER関数

    3. PHPでSSH経由でMySQLサーバーに接続する

    4. コマンドラインインターフェイス(CLI)を使用してMySQLデータベースを作成する方法