Maison >base de données >tutoriel mysql >Pagination des jeux de clés et OFFSET dans SQL Server : une approche plus efficace ?
Une solution plus efficace pour la pagination SQL Server : la pagination des jeux de clés
Dans SQL Server, la pagination est généralement implémentée à l'aide de OFFSET, mais pour les grandes tables, la pagination Keyset est une méthode plus efficace. Contrairement à la pagination par ensemble de lignes, qui nécessite la lecture de toutes les lignes précédentes pour atteindre la page souhaitée, la pagination par ensemble de clés passe directement à l'emplacement correct dans l'index, améliorant ainsi considérablement les performances.
La mise en œuvre de la pagination Keyset nécessite la création d'un index unique sur la clé requise. La clé peut contenir des colonnes supplémentaires requises par la requête. Il convient de noter que cette méthode ne peut pas accéder directement à un numéro de page spécifique. Au lieu de cela, vous devez d’abord localiser une clé spécifique, puis continuer à partir de là.
L'un des avantages de la pagination Keyset est qu'elle évite le problème de "ligne perdue" causé par la suppression de lignes dans la pagination d'un ensemble de lignes. Étant donné que la pagination est basée sur des clés, les modifications dans l'ordre des lignes n'affecteront pas la logique de pagination.
Ce qui suit est un exemple d'utilisation de la pagination Keyset dans SQL Server :
<code class="language-sql">SELECT TOP (@numRows) * FROM TableName ORDER BY Id DESC;</code>
Cette requête récupère la première page de données par ordre décroissant par la colonne Id. Pour paginer davantage, vous pouvez utiliser la dernière valeur d'ID reçue comme ceci :
<code class="language-sql">SELECT TOP (@numRows) * FROM TableName WHERE Id < @lastId ORDER BY Id DESC;</code>
Pour prendre en charge la pagination par colonnes non uniques, des colonnes supplémentaires doivent être incluses dans les clauses ORDER BY
et WHERE
. Des index appropriés doivent être créés sur les colonnes sélectionnées pour garantir une exécution efficace.
La pagination Keyset offre une alternative plus efficace à la pagination OFFSET pour les grands ensembles de données dans SQL Server. Il évite les lectures de lignes inutiles et garantit des résultats paginés cohérents même lorsque les données sont modifiées.
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!