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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
注: ソフトウェアのインストールの基本ディレクトリ パスは /usr/local です。ソフトウェア...
目次1. BOMの紹介1. JavaScriptは3つの部分から構成される2.ウィンドウオブジェクト...
目次1.1. IP経由のコンテナ間のネットワークアクセス1.2. コンテナ名またはコンテナIDによる...
クローラー対策ポリシー ファイルを追加しました: vim /usr/www/server/nginx...
1例: 図1のフィールドを図2に分割するには アカウントIDを選択、 サブストリングインデックス(サ...
今日は春節の金貨の赤い封筒のアクティビティを作りました。なかなか良い出来だと思います。皆さんと共有し...
MySQLとElasticsearch間のデータ非対称性問題の解決策jdbc-input-plugi...
ブラウザ モジュールの主な機能は、http リクエスト ヘッダーの「User-Agent」の値とブラ...
について最近、Vue を学習する過程で、基本的な知識の練習と強化を目的として、Qunar.com の...
仕える: # chkconfig --list すべてのシステムサービスを一覧表示する# chkco...
以下のデモはMySQLバージョン5.7.27に基づいています。 1. MySQLサブクエリ最適化戦略...
目次1. 浅いコピー1. Object.assign(ターゲット、ソース、ソース...) 2. スプ...
ウェブサイト構築におけるカラーマッチングは非常に特殊であり、ウェブサイトのテーマ、感情、雰囲気などの...
最新バージョンのMySQL 8.0.11をインストールした後、ユーザーを作成して認証します。認証され...
<frameset></frameset>は皆さんもよくご存知のものです。こ...