AppEngine は非常に最適化された方法でクエリを実行するため、name プロパティに対してクエリを実行するか、キーのみでバッチ取得を実行するかは、パフォーマンスの観点からは実質的に無関係です。どちらも、返されるエンティティの数に比例します。データベースに格納されているエンティティの総数に違いはありません。ただし、わずかな違いは、データベースで発生する「名前」の異なる値の数です (したがって、1000 個のエンティティが返されると、100 個のエンティティが返されるよりも正確に 10 倍遅くなります)。
これを行う方法は、データと一緒に保存されたインデックス (または必要に応じてインデックス) を使用することです。「名前」プロパティのインデックスは、すべての名前がアルファベット順に並べ替えられたテーブルで構成されます (クエリで降順を使用する場合は、2 つ目のテーブルは逆のアルファベット順で並べ替えられます)。テーブルでクエリしている名前が最初に出現し、結果を順番に返し始めます。これを「スキャン」と呼びます。
このビデオは少し技術的ですが、これらすべてがどのように機能するかを詳細に説明しています。パフォーマンスを最大化するためのコーディングに関心がある場合は、時間をかけて投資することをお勧めします。
Google I/O 2008: Google App Engine データストアの裏側
(ビデオの品質はかなり悪いですが、スライドもオンラインにあります(ビデオの上のリンクを参照))