トラフィックの多いサイトでプリペアドステートメントを使用して、いくつかのクエリを高速化することを検討しています。私が正しく理解していないと思うのは、複数の接続で準備ができていない限り、準備されたステートメントを使用することの利点です。これは、持続的接続も許可しないPDOでは不可能のようです。しかし、持続的接続機能はPDOを許可しません。
引数のために、1秒間に5,000回クエリを実行しているとしましょう:SELECT * FROM some_table WHERE some_column LIKE'some_value'
私が理解していることから、クエリが必要になるたびに「some_value」を変更した場合、PDOはmysqlがクエリを再コンパイルして評価するのを防ぎます。また、帯域幅を節約するために「some_value」をASCIIではなくバイナリで送信できることも理解していますが、接続を開くたびにクエリ全体を送信する必要がある場合は、それほど節約にはなりません。
また、私が読んだことから、ストアドプロシージャは、複数の接続を介してコンパイルされたままにならないため、解決策ではありません。
この問題の解決策はありますか?プリペアドステートメントをサーバーのどこかに保存し、メモリにコンパイルされたままにして、変数を受け取るとすぐに起動できるようにしますか?
接続プールとPDOを組み合わせてこれを実現する方法はありますか?(接続プールは特定の条件でブロッキングを引き起こす可能性があるため、理想的ではないとも聞いていますが)