0

Web サイトのページネーションに「limit」コマンドが使用されていることは知っています。
DB は、結果セットを直線的に処理することなく、開始インデックスを見つけることができるのだろうか。

たとえば、「100 番目と 120 番目の間で何かを検索する」というクエリの場合、DB には、100 項目を直線的に超えずに、クエリの 100 番目の項目を見つける方法がありますか?

実際に線形検索を行う必要がある場合、大規模なサイトで見られるページネーションは単純な「制限」コマンドでは実装されていないと思いますか?

4

1 に答える 1

0

特定の実装については言及しませんが、オフセットに基づく瞬時のルックアップをサポートするデータ構造は確かに存在します。整数、構造体、およびポインター (おそらく構造体を指している) の通常の C 配列について考えてみてください。

さらに、リレーショナル データベースにはさまざまなキャッシュ スキームがあるため、最初のルックアップに時間がかかっても、後続のクエリを大幅に高速化できます。

実際の実装の場合、索引付けされた列に対して常に ORDER BY および LIMIT を実行する必要があります。

于 2012-04-11T16:19:18.003 に答える