MySQL5.0までは、このプリペアードステートメントによって実行したSELECT文は、MySQLが持っているクエリキャッシュにヒットしないという弱点がありました。クエリキャッシュとは、SELECT文の実行結果をキャッシュしておいて、次回以降同じSELECT文が実行されたときに、それを実行せずにキャッシュしてある結果をそのまま返すという機能です。マジでぇ〜!!ORACLEとかと同じで、効くのかと思ってたよ、、。。今更と思うかもしれないが、、ちゃんと調べておかないと、いけないね、、、orz
テーブルの中身が更新された場合はそのキャッシュが消滅しますが、読み取り主体のテーブルなどに対するアクセスでは非常に高い効果を発揮します。クエリキャッシュを使いたいという理由でプリペアードステートメントを使わないという方もいたと思いますが、MySQL5.1からは機能するようになっています。
〜 SoftwareDesign 2008/06 P131-132 より引用 〜
うわぁ〜、今まで作ってた物は、全然キャッシュ効いてないって事かぁ、、、orz
0 件のコメント:
コメントを投稿