2

と の間に多対多のマッピングがprofilesありcategoriesます。このクエリ:

$profiles = new Profile();  
$profiles->where('foobar_flag',1);
$profiles->where_related($category);
$profiles->get();

そのプロファイル テーブルに約 1000 のエントリがあり、実行に約 30 秒かかります。カテゴリ テーブルと profile_categories テーブルもあります。実行ごとに驚異的な 4000 のクエリが発生します。

これをより速くするにはどうすればよいですか?

4

1 に答える 1

0

データマッパーの機能に不満がある場合は、アクティブなレコードクエリがあなたの言うようにコストがかかりすぎる可能性があるため、単純化された方法を見つけてください。

プロファイラーを常に実行します。

$this->output->enable_profiler(TRUE);

これにより、舞台裏で何が行われているのかを正確に把握できます。そこから最適化します。それ以外の場合は、関連する回答を提供するために、ここでさらにコードを実行する必要があります。

于 2011-11-18T13:49:48.193 に答える