Мне нужно предотвратить выбор некоторых очень дорогих полей, если они не требуются.
У меня есть поле многоугольника в базе данных, которое я хочу выбирать только один раз, когда это необходимо.Для коллекций Это поле не должно загружаться или даже отображаться в результирующем разделе SELECT * FROM
, только если выбрано напрямую.Это то, что я искал.Чтобы свести данные сбора к подмножеству полей для повышения производительности sql.
Например, если БД удаленная, я не хочу передавать как можно меньше информации с сервера sql на сервер php.
В случае геометрических данных эти отдельные поля могут оказаться огромными.
Я знаю, что могу фильтровать коллекции по факту.Я использую Apigility с FilterInterface уже.Это помогает минимизировать данные, передаваемые с php-сервера на клиент, но не с mysql-сервера на php-сервер.
/**
* @ORM\OneToMany(targetEntity="ContactSearchprofile", mappedBy="contact", cascade={"all"}, orphanRemoval=false)
*/
private $searchprofiles;
public function getSearchprofiles() {return $this->searchprofiles;} // will select everything
Внутренне он должен делать только repo->select("The, Fields, I, Want")->where('id = :contact_id');
вместо select("*")
.