Swoole MySQL プロキシ
MySQL プロトコルに基づいて Swoole によって開発された MySQL データベース接続プール。
原則
データベース接続をオブジェクトとしてメモリに保存します。ユーザーがデータベースにアクセスする必要があるときに、初めて接続が確立されます。後で、新しい接続を確立するのではなく、確立されたアイドル状態の接続オブジェクト。使用後、ユーザーは接続を閉じず、次のリクエストに備えて接続を接続プールに戻します。接続の確立と切断は、接続プール自体によって管理されます。
同時に、接続プール内の接続の初期数、接続の上限と下限、各接続の最大使用数、最大アイドル時間などを制御することもできます。接続プールのパラメータを設定します。独自の管理メカニズムを通じてデータベース接続の数や使用状況などを監視することもできます。最大接続数を超えると、コルーチンは一時停止され、接続が閉じられて操作が継続されるまでコルーチンは再開されます。
特長
読み取りと書き込みの分離をサポート PHP によって引き起こされるデータベース接続のボトルネックを効果的に解決できるデータベース接続プールをサポート SQL92 標準をサポートし、コルーチン スケジューリングを使用して複数のデータベース接続をサポート個々のユーザー、柔軟な組み合わせと MySQL ネイティブ プロトコルへの準拠、クロス言語、クロスプラットフォームの一般的なミドルウェア エージェントのサポート MySQL トランザクションのサポート HandshakeV10 プロトコル バージョンは MySQL4.1 ~ 8.0 と完全に互換性があり、主要なフレームワークと互換性があります。シームレスにパフォーマンスを向上
設計本来の目的
PHP には接続プールがないため、同時実行性が高い場合、データベースは接続でいっぱいになります。Mycat などのデータベース ミドルウェアにより、一部の SQL が一括追加がサポートされていない、肥大化しているなど使い物にならない。そこで私は、接続プーリングと読み取り/書き込み分離のみをサポートするこの軽量ミドルウェアを作成しました。Swoole コルーチン スケジューリングと HandshakeV10 プロトコル転送を使用すると、プログラムがより安定します。Mycat のようなすべての SQL パッケージ本体を解析する必要はありませんが、これにより複雑さが増します。
開発とディスカッション
ドキュメント:https://smproxy.louislivi.com
ブロックされている場合は、こちらにアクセスしてください:https :/ /smproxy.gitee.louislivi.com
QQ グループ: 722124111 あらゆるタイプの問題とプル リクエストを歓迎します。
寄稿者リスト