1. 問題のシナリオ新しいトランザクション レコードのエクスポート機能がリリースされました。ロジックは非常にシンプルで、クエリ条件に基づいて対応するデータをエクスポートします。データ量が多いため、データベースを照会する際にはページネーション クエリが使用され、1 回につき 1,000 個のデータが照会されました。 セルフテストは正常、テスト環境は正常、オンラインになった後に操作フィードバックによってエクスポートされたデータには重複レコードがあります。 当初はビジネス ロジックの問題だと思っていたので、コードを再度 2. 原因分析クエリステートメントは 発生するシナリオは、 例えば、 つまり、データは前後にジャンプし、しばらくの間は最初のページに表示され、しばらくの間は 2 番目のページに表示されるため、エクスポートされたデータの一部が重複し、一部が欠落することになります。 MySQL 5.7 および 8.0 の公式ドキュメントを確認したところ、説明は次のとおりです。
上記をまとめると、 簡単に言うと、 3. 解決策上記の問題に対する基本的な解決策は、 select * from tb_order order by create_time ,id desc; こうすることで、 4. 知識を広げる実際、上記の内容は 4.1 クエリの最適化を制限する結果セットの一部のみをクエリする場合は、すべてのデータをクエリして不要なデータを破棄するのではなく、制限条件によって制限する必要があります。 所有条件が使用されていない場合、MySQL は制限条件を最適化することがあります。
ここまで 4.2 limitとorder byを一緒に使う上記の 2 番目のポイントで述べたように、 次の例では、ID と評価は不明ですが、カテゴリ列に基づいて並べ替えクエリが実行されます。 mysql> SELECT * FROM ratings ORDER BY category; +----+----------+--------+ | ID | カテゴリー | 評価 | +----+----------+--------+ | 1 | 1 | 4.5 | | 5 | 1 | 3.2 | | 3 | 2 | 3.7 | | 4 | 2 | 3.5 | | 6 | 2 | 3.5 | | 2 | 3 | 5.0 | | 7 | 3 | 2.7 | +----+----------+--------+ クエリ ステートメントに制限が含まれている場合、同じカテゴリ値を持つデータに影響する可能性があります。 mysql> SELECT * FROM ratings ORDER BY category LIMIT 5; +----+----------+--------+ | ID | カテゴリー | 評価 | +----+----------+--------+ | 1 | 1 | 4.5 | | 5 | 1 | 3.2 | | 4 | 2 | 3.5 | | 3 | 2 | 3.7 | | 6 | 2 | 3.5 | +----+----------+--------+ ID 3 と 4 の結果の位置が変更されました。 実際には、クエリ結果の順序を維持することが非常に重要になることがよくあります。この場合、結果の順序を保証するために他の列を導入する必要があります。 上記の例で id が導入された後、クエリ ステートメントと結果は次のようになります。 mysql> SELECT * FROM ratings ORDER BY category, id; +----+----------+--------+ | ID | カテゴリー | 評価 | +----+----------+--------+ | 1 | 1 | 4.5 | | 5 | 1 | 3.2 | | 3 | 2 | 3.7 | | 4 | 2 | 3.5 | | 6 | 2 | 3.5 | | 2 | 3 | 5.0 | | 7 | 3 | 2.7 | +----+----------+--------+ mysql> SELECT * FROM ratings ORDER BY category, id LIMIT 5; +----+----------+--------+ | ID | カテゴリー | 評価 | +----+----------+--------+ | 1 | 1 | 4.5 | | 5 | 1 | 3.2 | | 3 | 2 | 3.7 | | 4 | 2 | 3.5 | | 6 | 2 | 3.5 | +----+----------+--------+ id列のソートを追加すると、 5. まとめ当初は、実践で時々発生する落とし穴を通じて、 多くの友人はクエリに MySQL ソート機能の詳細に関するこの記事はこれで終わりです。MySQL ソート機能に関するより詳しい情報は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
この記事では、Reactでページング効果を実現するための具体的なコードを参考までに紹介します。具体的...
覗き見の問題サーバーでは、IIS サービスが複数のサイトを展開していると仮定すると、サイトの 1 つ...
序文この記事では、主にライブラリ内のすべてのテーブルを返すMysql8.0ドライバgetTables...
<br />関連記事: Web コンテンツ ページ作成に関する 9 つの実用的な提案 W...
目次方法1 1. 構成とインストールの手順:方法2方法3要約する方法1 1. 構成とインストールの手...
序文最近、仮想マシンを使用して Ubuntu 18.04 をインストールしました。クローン作成後、I...
目次アイデアホスト構成confを変更する再起動テストスレーブ 1 の構成スレーブ2の構成マスターとス...
関連文書この記事の一部は、https://www.cnblogs.com/zhongchao666/...
目次スケルトンスクリーンの使用Vueアーキテクチャスケルトンスクリーンアイデアの概要抽象コンポーネン...
前回、非常に熱心なファンから、月を呼吸する光の効果にできるかどうか尋ねられました。月の大きさの写真が...
今日は、Taobao、JD.comなどのショッピングモールでよく使われている、小さな画像の上にマウス...
<br />ヘッダーはテーブルの最初の行を参照します。ヘッダー内のテキストは中央揃えで太...
この記事では、jsネイティブウォーターフォールフロープラグインの具体的なコードを参考までに共有します...
目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...
01PARTCoreWebApiチュートリアルローカルデモ環境Visual Studio2019--...