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: Chromeデベロッパーツールを使用する方法 2: フレ...
Web デザインにおけるツリーとは何ですか?簡単に言うと、リンクをクリックするとサブディレクトリが展...
今日、私は <a href="#13"></a> につい...
長期間稼働しているデータベースの場合、テーブルがストレージ領域を占有しすぎるという問題がよく発生しま...
VMware Workstation を使用して Windows 10 で仮想マシンを開くと、VMw...
ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを D...
原因docker スクリプトを実行すると、コンテナを作成できないというエラーが発生します。以下のよう...
目次キャッシュキャッシュ位置の分類キャッシュ設定ヘッダーNodeは静的ファイルキャッシュを実装する強...
<br />関連記事: ハイパーリンクを表示して開く方法症状<br />ユー...
目次1. 存在する1.1 説明1.2 例1.3 交差/2017-07-21 2. 除く2.1 説明2...
Linuxシステムバージョン: CentOS7.4 MySQL バージョン: 5.7.28 Linu...
本日、開発中に、顧客からページをキャッシュしないように要求される方法に遭遇しました。調べたところ、ペ...
ソフトウェアのダウンロードソフトウェアのダウンロード リンク: https://pan.baidu....
「Enter != Submit」問題を実装するには、通常、「ボタンの種類」と「入力ボックスの数」か...
目次特徴利点インストールとコマンド設定ファイルプロキシモードとリバースプロキシ構成フォワードプロキシ...