Комментарии 11
Возможно, кэширование запросов структуры дало бы практически такое же ускорение, и не содержало бы явного минуса Вашего решения.
+3
Не проверял, но думаю все равно будет чуть-чуть медленнее
0
Разница небольшая, но кэш можно инвалидировать, тем самым сохраняя актуальную версию структуры без вмешательства.
+3
Не думаю что вы ощутите «медленность» обращения к кешу. Это первая мысль, которая приходит в голову. В любом случае, этот запрос реализирован в одном из методов модели, потому можете просто переопределить этот метод, чтобы он информацию тянул с кэша, а не с базы.
За попытку плюс конечно. Но я бы такое решение не внедрял.
За попытку плюс конечно. Но я бы такое решение не внедрял.
+1
Думаю профилирование профилирование запросов на стороне сервера, выявление узких мест и их замена на plain SQL решила бы эту задачу. Хотя уж года три, как другим фреймворком пользуюсь.
0
Yii Framework позволяет кэшировать схему БД, думаю это наилучшее решение.
0
Я решал эту проблему переопределением метода ORM:
public function list_columns()
{
if ( Cache::instance()->get( 'table_columns_' . $this->_object_name ) )
{
return Cache::instance()->get( 'table_columns_' . $this->_object_name );
}
Cache::instance()->set( 'table_columns_' . $this->_object_name, $this->_db->list_columns( $this->table_name() ) );
// Proxy to database
return $this->_db->list_columns( $this->table_name() );
}
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Избавление Kohana ORM от лишних запросов к БД