Pull to refresh

Comments 23

Для Ruby On Rails есть gem bullet определяющий N+1 запросы и выдающий стек-трейс где это исправить.
Интересно, подобная реализации для Yii2 присутствует?

P.S Загрузите изображения в habrastorage.org
Не сразу понял, о чем речь. Все же «жадный» — это greedy (например, greedy regex quantifier). Eager — разве что в переносном смысле, вообще это скорее «жаждущий».
Жадная загрузка — это общепринятое понятие, обозначаемое в английском языке как eager loading. И переводится оно именно так. И если перейти к вашему дословному переводу слова eager (вернее, одному из возможных переводов), то человек, испытывающий жажду, пьет с жадностью, отсюда и понятие.
Погуглил. Да, это явно общепринятый перевод, вы правы.
В оправдание скажу, что я, кроме хабра, на русском языке ничего связанного с IT/CS не читаю.
У меня на работе VK заблокирован. Почему Вы не выложили картинки на habrastorage? Перезалейте, пожалуйста. Вообще использовать vk как хостинг картинок совершенно неправильно.
Попробуйте Opera Developer со включенным VPN или заходите в вк через другой VPN)
Извините дорогие читатели. Сейчас исправлю изображения.
UFO just landed and posted this here
Была изначально ленивая, сделали жадную.
Извините пожалуйста, но о этом знаком практически каждый человек, хоть немного работающий в yii2.
Статья была бы интересней, если бы вы рассказали о жадной загрузке в подгруженных жадных загрузках. Либо варианты доставать данные через 2-3 загрузки.

На хабре периодически появляются подобные статьи, поражающие своей очевидностью.
Прост в шоке… Какой чудесный недокументированный метод… А какой прекрасный подход. Спасибо, что сообщили о своей находке. Обязательно возьму на вооружение, а то эти 100500 запросов при моих постоянных выборках для вывода по 500-1000 элементов на страницу уже задрали.
Да уж! Учите матчасть.
Вы похоже такой же капитан, как и автор статьи)
недокументированный

ActiveQuery::with()
В Yii даже и внешняя документация не особо нужна. Открываешь класс -> изучаешь методы -> находишь много нового и полезного.
Я не знаю Yii, но проще, быстрее и вообще, было сделать в основном запросе сразу сделать сразу выборку названий категорий JOIN-ном или SELECT-вом двух таблиц — не имеет значения. Вы берете ORM и потом героический боретесь с ним и, в данном случае, особенностями виджетов GridView.
Сказали просто чтобы сказать? AR тут дает необходимые возможности. Если вы не в теме Yii, то смысл вашего комментария?
Это не борьба с orm, а использование его возможностей.
Автор как раз это и сделал, использовав with. А раз ему и join нужен был — joinWith(). Это и так в документации очень хорошо написано, автор в данном случае показал, как это к грид применить.
Жадность не исключает ленивость, кстати ) collection.load('relation')
Еще вариант перевода eager load — «нетерпеливая» загрузка
Sign up to leave a comment.

Articles