3

PDO と MySQL を使用する場合、同じページで複数回使用することがわかっている結果をキャッシュすることに利点はありますか? それとも、PDO / MySQL はこのようなことを自動的に処理しますか?

また、自分で行う必要がある場合、クエリからの実際の結果を保存する必要がありますか、それとも PDOStatements をキャッシュに保存して再利用できますか?

もちろん、1 つのページで複数回使用することがわかっている任意の結果を変数に格納することもできますが、データベース クラスでこの種のことを透過的に処理できるようにする方がクリーンなように思えます。たとえば、 $DB->get_username_by_id($id) を呼び出せるようにしたいのですが、それが DB から直接来るのかキャッシュから来るのかを心配する必要はありません。

または、共有ホスト上の PDO や MySQL で動作する超軽量で使いやすく、効果的で用途の広いものを教えてくれる人がいるなら、独自のデータベース クラスを作成するという考えを放棄するかもしれません.. .

4

2 に答える 2

2

これは、 PHP PDO キャッシングに役立ちます

PDO を使用している場合は、PDO::Prepare が役に立ちます。

異なるパラメーター値で複数回発行されるステートメントに対して PDO::prepare() および PDOStatement::execute() を呼び出すと、ドライバーがクエリ プランのクライアント側および/またはサーバー側のキャッシュをネゴシエートできるようになり、アプリケーションのパフォーマンスが最適化されます。パラメータを手動で引用する必要がなくなるため、SQL インジェクション攻撃を防ぐのに役立ちます。

http://php.net/manual/en/pdo.prepare.php

于 2012-04-17T15:37:46.113 に答える
0

本当に良い言い訳がない限り、何かカスタムのものよりも既存のライブラリを使用することを常にお勧めします。この場合、データを保持するためにオブジェクトを使用していないように見えるので、 id はDoctrine DBALとします。完全な OOP ルートに進み、データを特定のオブジェクトにマップしたい場合は、完全なDoctrine ORMを使用してください。

于 2012-04-17T15:37:25.073 に答える