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ログを出力します。

推薦する

IdeaはリモートDockerをデプロイし、ファイルを構成する

1. LinuxサーバーのDocker構成ファイルを変更する vim /usr/lib/system...

フォーム要素属性の読み取り専用と無効の使用の比較

1) 適用範囲:読み取り専用:input[type="text"],input[...

IE をフリーズさせる HTML コード

任意のテキスト エディターを開き、次のコードをコピーして、たとえば SomeFilename.htm...

MySQL データベースの文字化け問題の原因と解決策

序文データベースのデータを表示すると、文字化けした文字が表示されることがあります。実際、どのようなデ...

Centos に MYSQL8.X をインストールするチュートリアル

MySQLのインストール(4、5、6は省略可能)ステートメント: CentOS のバージョンは 7....

Vueはechartsを使用して組織図を描画します

昨日、円形のプログレスバー (Vue 円形プログレスバーを参照してください) についてブログを書きま...

CSSリンクと@importの違いの詳細な説明

HTML に CSS を追加するにはどうすればいいですか? HTML で CSS を設定する方法は ...

mysql と oracle のデフォルトのトランザクション分離レベルの説明

1. トランザクション特性(ACID) (1)原子性トランザクションに関係するプログラムによって実行...

ウェブページのコアコンテンツ(画像とテキスト)の視覚的表現の紹介

情報の最適化と改良は常にデザインの最初のステップです。 「これは百度アライアンスユーザーエクスペリエ...

Windows に Docker をインストールする詳細なチュートリアル

ローカルの MySQL バージョンが比較的低いため、最近 MySQL のバージョンをアップグレードす...

複数のプロジェクトをデプロイする Docker nginx の例

前提条件1. ローカルコンピュータとサーバーにDockerがインストールされています。ダウンロード方...

Centos7 で MySQL マスター スレーブ サーバーを構築する方法 (グラフィック チュートリアル)

この記事では主に CentOS 上で MySQL マスタースレーブサーバーを構築する方法を紹介します...

docker compose helloworld を使い始めるための詳細なプロセス

前提条件Compose は、Docker コンテナをオーケストレーションするためのツールです。Doc...

Windowsタイムサーバーの設定方法の詳しい説明

最近、会社のサーバーの時間が不正確で、外部の時間ソースと同期できないことがわかりました。会社はドメイ...

Nginx のアクセス制御とパラメータ調整方法

Nginx グローバル変数Nginx には、$variable 名を通じて使用できるグローバル変数が...