Разница между объединением и предварительной выборкой в ​​DBIx :: Class - PullRequest
0 голосов
/ 03 июля 2018

Пожалуйста, подробно объясните разницу между join и prefetch в DBIx::Class.

joins отображается на JOIN в SQL, верно?

prefetch заставляет читать все данные из связанных таблиц, верно?

Но мне кажется, что в случае отношения has_a к таблице, присоединение и предварительная выборка этой таблицы делают одно и то же, добавляют SQL JOIN. Правильно? Есть ли разница между join и prefetch для has_a отношений?

Так когда же использовать (особенно для has_a отношений)?

1 Ответ

0 голосов
/ 03 июля 2018

Предварительная выборка является сахаром для объединения + выбора и заполняет кэш связанными результирующими объектами, поэтому при вызове метода средства доступа к отношениям SQL-запрос не запускается.

...