Я обрабатываю тонну книжных записей (12,5 миллионов) с помощью Ruby и Datamapper. В редких случаях мне нужно получить связанные идентификаторы для конкретной записи книги, но Datamapper создает оператор выбора, собирающий все связанные идентификаторы для всех записей книги. Запрос занимает более 2 минут.
http://datamapper.org/why.html
В справочном документе говорится, что это «Стратегическая энергичная загрузка» и ...
"Идея состоит в том, что вы не собираетесь загружать набор объектов и использовать только ассоциацию только для одного из них. Это должно довольно хорошо противостоять правилу 99%.
Если вы не хотите, чтобы это работало так, просто загрузите нужный элемент в его собственном наборе. Так что DataMapper думает о будущем. Нам нравится называть это «исполнителем по умолчанию». Эта функция в одиночку удаляет «проблему запроса N + 1». "
Однако, как вы загружаете предмет в его собственном наборе? Кажется, я не могу найти способ указать, что я действительно хочу запрашивать идентификаторы только для одной из записей книги.