MySQL、Oracle、SQL Server のページングクエリ例の分析

MySQL、Oracle、SQL Server のページングクエリ例の分析

最近、Oracle、MySQL、SQL Server 2005 のデータ ページング クエリについて簡単な調査を行い、それぞれのクエリ ステートメントを投稿して、誰でも学習できるようにしました...

(I) MySQLのページングクエリ

MySQL のページング クエリは最も簡単です。キーワード制限を使用してクエリを実行できます。一般的なクエリ ステートメントは次のとおりです。

o.*from(sql) o limit firstIndex,pageSizeを選択します

次のスクリーンショットに示すように、ページごとに表示されるレコード数は 20 です。

これらの20件のレコードをクエリ(1-20)

これらの 20 件のレコード (21-40) をクエリします


MySQL ページング クエリは非常にシンプルです...

(II) sqlserver2005のページングクエリ

SQL Server 2005 より前では、top キーワードを使用してページング クエリを実装していましたが、効率が低かったです。SQL Server 2005 以降のバージョンでは、row_number() 分析関数を使用してページング クエリを完了し、効率が大幅に向上しました。ただし、SQL ステートメントはより複雑です。ページング クエリの一般的な式は次のとおりです。

selecttoppageSizeo.*from(selectrow_number()over(orderbyorderColumn)asrownumber,*from(sql)asowhererownumber>firstIndex;

下のスクリーンショットを見ると、1 ページあたり 20 件のレコードが表示されています。

これらの20件のレコードをクエリ(1-20)

これらの 20 件のレコード (21-40) をクエリします

sqlserver の row_number 関数を知っていれば、ページングは​​簡単です...

(III) Oracleページングクエリ

次に、Oracle のページング クエリに焦点を当てます。Oracle には、ROWNUM と row_number() という比較的多くのページング クエリ メソッドがあります。今日は、効率がわずかに優れている 2 つのページング クエリ ステートメントに主に焦点を当てます。

①ROWNUMクエリページング式:

select*from(selecta.*,ROWNUMrn from(sql)a whereROWNUM<=(firstIndex+pageSize))wherern>firstIndex

次のスクリーンショットは、この方法で実行されたクエリを示しています。

これらの 20 件のレコードをクエリ (1-21) します***** (ID=6 のレコードはないため、クエリされる最大 ID は 21 です)



これらの 20 件のレコードをクエリ (22-41) します***** (ID=6 のレコードは存在しないため、クエリする最初の ID は 22 で、最大 ID は 41 です)

②row_number()解析関数ページングクエリメソッド:

select*from(select*from(selectt.*,row_number()over(orderbyorderColumn)asrownumberfrom(sql)t) p wherep.rownumber>firstIndex)whererownum<=pageSize

次のスクリーンショットは、row_number() を使用したページング クエリの効果を示しています。

これらの 20 件のレコードをクエリ (1-21) します***** (ID=6 のレコードはないため、クエリされる最大 ID は 21 です)



これらの 20 件のレコードをクエリ (22-41) します***** (ID=6 のレコードは存在しないため、クエリする最初の ID は 22 で、最大 ID は 41 です)


ROWNUM クエリ メソッドでは、第 2 レベルの SQL ステートメントに「 where ROWNUM<(firstIndex+pageSize)order by idascがあり、データ テーブルから (firstIndex+pageSize) レコードをクエリします。したがって、この値が非常に小さい場合、効率は非常に良好になります。大規模なデータ フォームでこの値が数千の場合 (例: select* from wyuse where rownum<(5000) order by idasc 、最初に 5000 レコードが選択され、当然、効率は大幅に低下します。

要約する

以上が編集者によるMySQL、Oracle、SQL Serverのページングクエリの紹介です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL 1対多関連クエリのページングエラー問題の解決方法
  • MySQL 百万レベルのデータページングクエリ最適化ソリューション
  • 数千万のデータを扱うMySQLのページングクエリのパフォーマンスを最適化する
  • MySQL の制限使用法とページングクエリステートメントのパフォーマンス分析の詳細な説明
  • Mysql 制限ページングクエリ最適化の詳細な説明
  • Oracle、MySQL、SqlServe のページング クエリ ステートメントの違いの概要
  • mysql、mssql、oracle のページング クエリ メソッドの詳細な説明
  • MySQL のページングクエリの 2 つのソリューションの比較
  • 3 つのデータベース (Oracle、MySQL、SqlServer) のページング クエリの例
  • MySQL における SQL ページングクエリのいくつかの実装方法と利点と欠点

<<:  CocosCreatorでJSZip圧縮を使用する方法

>>:  TomcatはLog4jを使用してcatalina.outログを出力します。

推薦する

JSはユーザー登録インターフェース機能を実装します

この記事の例では、ユーザー登録インターフェース機能を実装するためのJSの具体的なコードを参考までに共...

Dockerはnextcloudを使用してプライベートBaiduクラウドディスクを構築します

突然、ドキュメントの保存と共同作業のためのプライベート サービスを構築する必要がありました。多くの場...

要素 ui の el-table の列にさまざまなスタイルのデータを動的に実装する例

問題の説明Ele.me UI のフレームワークでは、入力データは el-form であり、出力データ...

MySQL 単一テーブルクエリの例の詳細な説明

1. データを準備するこのテーブルでは次の操作が実行されます 学生テーブルを作成 ( id int ...

Linux lsコマンドの使用

1. はじめにls コマンドはディレクトリの内容を表示するために使用され、Linux で頻繁に使用さ...

Windows 上で Zookeeper サーバーを構築するチュートリアル

インストールと設定Apacheの公式ウェブサイトには多くのミラーダウンロードアドレスが用意されており...

Linuxの貼り付けコマンドの使い方

01. コマンドの概要貼り付けコマンドは各ファイルを列ごとに結合します。これは、2 つの異なるファイ...

MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...

ネイティブJSを使用した遅延読み込みlazyLoadの3つの方法の概要

目次序文方法1: 高コントラスト方法2: getBoundingClientRect() APIを使...

MySQL における 10 進数型の使用法の簡単な紹介

MySQL でサポートされている浮動小数点型は、 FLOAT 、 DOUBLE 、およびDECIMA...

Vue+Element UIはドロップダウンメニューのカプセル化を実現します

この記事の例では、ドロップダウンメニューのカプセル化を実装するためのVue + Element UI...

DockerはRedisをインストールし、操作用のビジュアルクライアントを導入します

1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...

Rabbitmq heartbea ハートビート検出メカニズムの原理の分析

序文RabbitMQ を使用する場合、一定期間クライアントと RabbitMQ サーバーの間でトラフ...

Nginx サーバーが Systemd カスタム サービス プロセス分析を追加

1. nginxを例に挙げるyumコマンドを使用してNginxをインストールしましたSystemd ...

XMLとCSSスタイルの組み合わせ

学生.xml <?xml バージョン="1.0" エンコーディング=&qu...