1. 制限の基本的な実装 一般的に、クライアントは、pageNo (ページ番号) と pageSize (ページあたりのエントリ数) の 2 つのパラメータを渡してページングすることで、データベース内のデータを照会します。データ量が少ない場合 (タプルが数百または数千)、この問題を解決するには、MySQL の組み込み制限を使用します。 クライアントから受信 {pageNo:1,pagesize:10} テーブル limit (pageNo-1) * pageSize, pageSize から * を選択します。 クライアントから受信 {pageNo:5,pageSize:30} テーブル limit (pageNo-1) * pageSize,pageSize から * を選択します。 2. 主キーまたは一意のインデックスを作成する データ量が少ない場合は、ページング データに制限をかけるだけでは、パフォーマンスの低下は顕著に表れません。ただし、データ量が数万から数百万に達すると、SQL ステートメントのパフォーマンスがデータの戻りに影響します。このとき、主キーまたは一意のインデックスを使用してデータをページ分割する必要があります。 主キーまたは一意のインデックスがgood_idであると仮定します。 クライアントから受信 {pageNo:5,pagesize:10} テーブルから、good_id > (pageNo-1) * pageSize limit pageSize を選択します。 –good_idが40~50のデータを返す 3. データに基づく再ランキング 情報を昇順または降順で返す必要がある場合は、データに基づいて上記のステートメントを再並べ替えます。デフォルトではASC/DESC順または逆順に並べ替えます テーブルから、good_id > (pageNo-1)*pageSize となる値を選択します。order by good_id limit pageSize; –good_idが40から50までのデータを返し、good_idでデータをソートします 4. ページングのベストプラクティス 1ページあたり10項目を表示します: 現在 118 120, 125 逆の順序: サイズ 980 970 7 6 6 5 54 43 32 21 19 98 次のページ: 選択 * から tb1 どこ nid < (select nid from (select nid from tb1 where nid < 現在のページ 最小値 order by nid desc limit data per page * [ページ番号 - 現在のページ]) A order by A.nid asc limit 1) 並び替え なし説明 制限 10; 選択 * から tb1 どこ nid < (nid を選択 (nid を tb1 から選択、nid < 970 で順序を nid desc 制限 40 で並べ替え) A A.nid asc 制限 1 で並べ替え) 並び替え なし説明 制限 10; 前のページ: 選択 * から tb1 どこ nid < (select nid from (select nid from tb1 where nid > 現在のページの最大値 order by nid asc limit data per page * [現在のページ - ページ番号]) A order by A.nid asc limit 1) 並び替え なし説明 制限 10; 選択 * から tb1 どこ nid < (nid を選択 (nid を tb1 から選択、nid > 980 で順序を nid asc 制限 20 にする) A を A.nid desc 制限 1 で順序付ける) 並び替え なし説明 制限 10; 以上が今回ご紹介したMySQLでページングを実装する方法の全てです。123WORDPRESS.COMをご愛顧、ご支援いただきありがとうございました。 以下もご興味があるかもしれません:
|
>>: js におけるイベントバブリングとイベントキャプチャの簡単な分析
序文負荷分散には nginx を使用します。アーキテクチャのフロントエンドまたは中間層として、トラフ...
1. 1.ngx_stream_proxy_moduleモジュールのproxy_passディレクティ...
DATE_ADD() 関数は、指定された時間間隔を日付に追加します。現在のテーブル内のすべてのデー...
序文大規模なフロントエンドの開発に伴い、UI フレームワークが次々と登場し、フロントエンド開発におけ...
mysql-5.7.17.msiのインストール、スクリーンショットに従ってください、ステップバイステ...
この章では、dockerの下にあるSpring BootプロジェクトでRedisを操作し始めます。準...
エラー発生: MySQL 5.7 から SQL にデータベースをエクスポートし、それを MySQL ...
<br />1年前、インターネット上にはinline-blockプロパティに関する記事は...
この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...
方法1: SET PASSWORDコマンドを使用する MySQL -u ルート mysql> ...
/**************************** * システムコール**********...
コードをコピーコードは次のとおりです。高さ:自動 !重要;高さ:550px;最小高さ:550px; ...
Vue2.0/3.0双方向データバインディングの実装原理双方向データバインディングとは、データの変更...
ウェブサイトを作成している際に、flv や MP4 形式などのビデオ ファイルはローカルでは正常に再...
目次概要コンポーネント間でデータを共有する方法Vuex の原則の紹介Vuexはコンポーネントのグロー...