2009年2月11日水曜日

PDOの Prepared Statementと MySQLの Query Cache

MySQL で prepared statement を使うと query cache が効かないらしいので調査。


MySQL 5.0と 5.1.17 より前(=5.1.16以前)では、サーバサイドのPrepared Statementを使うとQuery Cacheが使われない。
参考:
 MySQL :: MySQL 5.0 Reference Manual :: 7.5.4 The MySQL Query Cache
 MySQL :: MySQL 5.1 Reference Manual :: 7.5.4 The MySQL Query Cache
 [PHP] prepared statement - Usenet Forums


でも、PDOのPrepared StatementはQuery Cacheを使っていると言う人もいる?(MySQLは5.0)
PHPのPDO::mysql。prepared statementはquery cacheを使っている! | まつぼっくりんご


また、PDOのPrepared Statementはそんなに有用じゃないから、$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true) した方がいいとか、PDO::query() を使った方がいいと言う人もいる。
Using PDO::MYSQL ? - Evil, as in Dr.(→ 機械翻訳:PDOを使うこと:MYSQLに?-悪(博士の場合のように)。
PHP: PDO::prepare - Manual


試したかったが、手元の環境は最新の5.1だったから普通にCacheが使われていた。

0 件のコメント:

コメントを投稿