Maison >base de données >tutoriel mysql >Comment la pagination des jeux de clés peut-elle améliorer l'efficacité de la pagination de SQL Server par rapport à OFFSET ?
Utiliser OFFSET
pour la pagination dans SQL Server peut être inefficace avec de grands ensembles de données. La pagination Keyset offre une alternative supérieure.
Contrairement à la pagination par ensemble de lignes (qui analyse toutes les lignes précédentes), la pagination par ensemble de clés utilise un index unique pour accéder directement au point de départ d'une page. Cela réduit considérablement la récupération de données inutiles. Un index unique sur la clé de pagination (et sur toutes les colonnes de requête supplémentaires) est crucial pour des performances optimales.
Disons que nous avons une table nommée TableName
avec un index sur Id
, et que nous devons paginer en utilisant la dernière valeur Id
.
Requête initiale (première page) :
<code class="language-sql">SELECT TOP (@numRows) * FROM TableName ORDER BY Id DESC;</code>
Requêtes ultérieures :
<code class="language-sql">SELECT TOP (@numRows) * FROM TableName WHERE Id < @lastId ORDER BY Id DESC;</code>
Où @lastId
est la valeur Id
la plus basse des résultats de la page précédente.
Pour les colonnes dépourvues de valeurs uniques, incluez une colonne secondaire dans les clauses `ORDER BY` et `WHERE`, ainsi qu'un index composite sur les deux colonnes.
Considérations importantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!