2011年10月1日

Yii Framework: スキーマキャッシュを利用してクエリ実行時間を高速にする

Yii で ActiveRecord を利用している場合、自分で書いたSQLの他に SHOW COLUMNS FROM ?? や SHOW CREATE TABLE ?? などが暗黙のうちに実行されます。これらの SQL により ActiveRecord が使えているわけですが、その分、クエリ実行時間が余分に増えるので CFileCacheComponent を利用してキャッシュするテストをしてみました。

まず protected/config/main.php に以下を追加。 あとは ActiveRecord を使ってクエリを組み立てるだけです。CFileCache を利用している場合 protected/runtime 下に cache ディレクトリが作られ、その中にキャッシュデータの入ったファイルが保存されます (1テーブルあたり1ファイル) 。速度的にはおよそ10倍くらいクエリ実行時間が高速になります。

注意点としては、当たり前ですが、データベーススキーマを変更した場合 (カラムの追加や型の変更) 、不具合が出る恐れがあるので、例えば開発段階の場合は、キャッシュデータファイルを削除するなどの調整が必要になります。

参考リンク

0 件のコメント:

コメントを投稿