Codeigniter/Datamapper "where_related" вызывает слишком много запросов
У меня есть сопоставление между многими profiles
а также categories
, Этот запрос:
$profiles = new Profile();
$profiles->where('foobar_flag',1);
$profiles->where_related($category);
$profiles->get();
Требуется почти 30 секунд для запуска, с около 1000 записей в этой таблице профилей. Существует также таблица категорий и таблица profile_categories. Я получаю ошеломляющие 4000 запросов за исполнение.
Как мне сделать это быстрее?
1 ответ
Если вы недовольны функцией в datamapper, либо найдите упрощенный способ сделать это, поскольку ваш запрос активной записи может быть слишком дорогостоящим, как вы говорите.
Всегда запускайте свой профилировщик:
$this->output->enable_profiler(TRUE);
Это даст вам истинное представление о том, что делается за кулисами. Оптимизируйте с этого момента. В противном случае нам нужно больше кода, чтобы продолжить, чтобы дать соответствующие ответы.