Я думаю, что трудно сказать, какие проблемы с производительностью вы будете иметь с таким большим количеством объектов. Этот конкретный запрос, вероятно, подойдет, но вы должны знать, что ни один запрос к хранилищу данных не может вернуть более 1000 сущностей, поэтому, если вам нужно работать с числами, превышающими 1000, вам придется делать это партиями, и вы можете хочу разделить их на отдельные группы объектов.
Что касается оптимизации, вы можете рассмотреть возможность кэширования результатов этого запроса и выполнения его только тогда, когда вы знаете, что информация изменилась или через определенные промежутки времени. Если запрос предназначен для какой-то цели, где совершенно правильные результаты не являются абсолютно критичными - скажем, отображение таблицы лидеров или списка рекордов - вы можете обновлять и кэшировать результат один раз в час или что-то в этом роде.
Единственная другая оптимизация, о которой я могу подумать, это то, что вы можете сохранить циклы, связанные с синтаксическим анализом этого оператора GQL, выполнив его один раз и сохранив полученный объект, в memchache или в глобальной переменной.