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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
1. ElasticSearch とは何ですか? Elasticsearch も Java で開発さ...
2017 年に Vulhub に取り組み始めてから、私は厄介な問題に悩まされてきました。Docker...
序文この記事は主にMySQLコマンド階層検索ヘルプの使用に関する内容を紹介します。この記事のサンプル...
1. ウィンドウ -> 設定を選択してEclipseの設定パネルを開きます。 2. 「設定」ウ...
スクロール バーのスタイルを設定するための CSS 実装コードは次のとおりです。 •::-webki...
モチベーション学習の必要性から、海外のサーバーメーカー(どこのメーカーかは言いません)のVPSサービ...
1. mysql-8.0.15をダウンロード、インストール、設定する1. 公式サイト (https:...
3. MySQLデータ管理最初の方法:お勧めできません。複雑そうです -- 学生テーブルの grad...
方法1: SET PASSWORDコマンドを使用するまずMySQLにログインします。フォーマット: ...
プロキシを有効にする2つの方法React には、直接使用できるカプセル化された Ajax リクエスト...
Linux システム、特にサーバー システムでは、デバイスのハードウェア情報を表示する必要がよくあり...
今日午後ずっと私を悩ませたバグを記録する半月前から始めましょう。それから.................
1. 必要なカーネルバージョンをダウンロードする2. オペレーティングシステムにアップロードする3....
デフォルトでは、Nginx は IP アドレスごとに 1 つの SSL 証明書のみをサポートします。...
MySQL 8.0.21のインストールと設定方法を記録してみんなで共有します。 1. ダウンロード1...