Использование CI Кэширование активной записи .
Пример (дословно со связанной страницы):
$this->db->start_cache();
$this->db->select('field1');
$this->db->stop_cache();
$this->db->get('tablename');
//Generates: SELECT `field1` FROM (`tablename`)
$this->db->select('field2');
$this->db->get('tablename');
//Generates: SELECT `field1`, `field2` FROM (`tablename`)
$this->db->flush_cache();
$this->db->select('field2');
$this->db->get('tablename');
//Generates: SELECT `field2` FROM (`tablename`)
WHERE
предложения могут быть "кэшированы" таким образомтак что это должно быть то, что вам нужно.Если необходимо, переместите некоторые кэшированные вызовы AR в функцию и просто вызовите функцию в начале каждой другой функции, которая нуждается в вашей модели.Каждый раз, когда вы запускаете запрос, кэшированные функции будут вызываться до тех пор, пока вы flush_cache()