パラメータ化された準備済みステートメントの場合にステートメントキャッシングが役立つかどうかを理解しようとしています。
私の理解によると
- キャッシュを使用すると、クエリは「文字列」に基づいてキャッシュされます。
- この場合、クエリのパラメーターの値が異なる場合、それは異なる/新しいステートメント/文字列 wrt キャッシュです。
- また、パラメータが変わると結果も変わります。
- 準備されたステートメントはパラメーター化されているため、この場合にキャッシュを使用すると本当に便利ですか。
JDBC/Snaq DB プール/MySQL データベースを使用しています。
ここでのステートメント キャッシングは、次の 2 つの異なるケースを指します。
- JAVA: Snaq DB プールは、ステートメントのキャッシュを容易にする ConnectionCache クラスを提供しました。
- MySQL: DB は、クエリと結果をキャッシュする方法も提供しました。http://dev.mysql.com/doc/refman/5.1/en/query-cache.html
私の混乱は簡単です:
- キャッシュ内のクエリ/対応する結果を検索する場合、文字列比較に基づいて検索します。
- パラメータ値が変更されると、クエリの文字列も変更されます。
- これにより、パラメーターの値のセットが異なる同じクエリに対して、キャッシュ内に異なるエントリが作成されます。
私の質問を明確にしたいと思います。