これは明らかに遅く非効率だ。この問題はEager Loadingというテクニックを使うことで解決できる。もし最初の注文クエリの一部として後で必要となる顧客とのアソシエーションをすべてロードしておけば、Customerに対するアクセスはただのプロパティへのアクセスになる。こうすれば後のデータベースクエリは不要になり、N+1問題も起こらない。 LightSpeedでは、そのEager Load設定をTrueに変更することで(もしくは手書きコードのエンティティにEagerLoadAttributeを適用することで)、アソシエーションのEager Loadを可能にする。Eager Loadされるアソシエーションをもつエンティティをクエリすると、LightSpeedは追加のSQLを生成して、‘プライマリ’エンティティと同じように関連したエンティティを取得する。 Order.Customerアソシエー
![ORMのパフォーマンス最適化](https://cdn-ak-scissors.b.st-hatena.com/image/square/9845887c4713564c307c752b650a7d424e85cb11/height=288;version=1;width=512/https%3A%2F%2Fres.infoq.com%2Farticles%2Foptimizing-orm-performance%2Fja%2Fsmallimage%2Fimages_orm1.jpg)