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

永続的vs非永続的-どちらを使用すればよいですか?

    永続的な接続の場合:

    • トランザクション処理を効果的に構築することはできません
    • 同じ接続で不可能なユーザーセッション
    • アプリはスケーラブルではありません。時間の経過とともに拡張する必要があり、永続的な接続の管理/追跡が必要になります
    • スクリプトが何らかの理由でテーブルのロックを解除できなかった場合、後続のスクリプトは無期限にブロックされるため、データベースサーバーを再起動する必要があります。トランザクションを使用すると、トランザクションブロックが完了する前にスクリプトの実行が終了した場合など、トランザクションブロックは(同じ接続を使用して)次のスクリプトにも渡されます。

    永続的な接続では、非永続的な接続でできることは何ももたらされません。
    では、なぜそれらを使用するのですか?
    唯一の考えられる理由は、パフォーマンスであり、リンクを作成するオーバーヘッドの際に使用することです。 SQLServerが高いです。そして、これは次のような多くの要因に依存します:

    • データベースタイプ
    • MySQlサーバーが同じマシン上にあるかどうか、そうでない場合はどのくらいの距離ですか?ローカルネットワーク/ドメインの外にある可能性がありますか?
    • MySQLが置かれているマシンが他のプロセスによってどれだけ過負荷になっているのか

    永続的な接続を非永続的な接続にいつでも置き換えることができます。スクリプトのパフォーマンスは変わる可能性がありますが、動作は変わりません!

    商用RDMSは、同時に開かれる接続の数によってライセンスが付与される可能性があり、ここでは永続的な接続が誤って機能する可能性があります



    1. Dockerは実行されていないコンテナにリンクできません

    2. AES_DECRYPTがnullを返すのはなぜですか?

    3. RefCursorの戻り型を使用してOracleストアドプロシージャをテストするにはどうすればよいですか?

    4. Doctrineの結合テーブル(ManyToMany)から行を削除するにはどうすればよいですか?