moteur Google app et la pagination
-
27-09-2019 - |
Question
Comment peut-on aller sur l'écriture d'une requête qui sélectionne les articles 2000-2010 sur une collection de 10000 objets dans le magasin de données.
Je sais que cela peut être fait comme ça dans GQL:
select * from MyObject limit 10 offset 2000
Selon la documentation , lorsque vous utilisez un offset
la moteur encore chercher toutes les lignes, ne pas les renvoyer, rendant ainsi la requête agit d'une façon qui correspond linéairement avec la valeur de offset
.
Y at-il une meilleure façon? Par exemple en utilisant une colonne pseudo-ROWNUM
comme on pourrait le faire dans d'autres types de magasins de données.
Autres conseils
En plus d'utiliser les curseurs, vous pouvez également utiliser une approche d'ordre de tri. Par exemple:
SELECT * FROM MyObject ORDER BY field LIMIT 10;
pour les 10 premiers objets, puis pour les 10 objets, etc.
SELECT * FROM MyObject WHERE field > largestFieldValueFromPreviousResult ORDER BY field LIMIT 10;
Le champs pourrait même être une clé si vous ne disposez pas d'un autre champ approprié. Voici un exemple plus complet: