最悪の選択肢は、結果を時間順に並べ替えて最初のものを取ることです。 *から選択 ここで、create_time<="2017-03-29 19:30:36" create_time 降順で並び替え 制限 1 この方法では、現時点で最新のレコードを取得できますが、クエリごとにテーブルを 1 回トラバースする必要があるため、100 万を超えるデータ ポイントを含むクエリでは時間がかかります。limit では、最初にすべての結果を取得してから最初の結果を取得するため、クエリで不要な時間とスペースが消費されます。また、最新のレコードをバッチで取得する必要がある場合 (たとえば、「注文テーブルにユーザー、注文時間、金額があり、すべてのユーザーの最新の注文レコードを一度にクエリする必要がある場合」)、各ユーザーのクエリでテーブル全体を 1 回トラバースする必要があります。データが大きい場合、時間は指数関数的に増加し、実用的ではありません。 中間戦略 - クエリをソートしてグループ化する (から*を選択 *から選択 ここで、create_time<="2017-03-29 19:30:36" create_time 降順で並び替え ) ユーザーIDでグループ化 その後、group by を使用すると、group by のパラメータ列でグループ化できますが、返される結果は 1 つだけであることがわかりました。注意深く観察すると、group by はグループ化後の最初のレコードを返すことがわかりました。デフォルトでは、時間はクエリ後に順番にソートされるため、現在の時間に最も近いものを取得するには、まず時間を逆順にソートする必要があります。 このクエリは実際には 2 つのクエリを実行します。時間は最初の方法よりもはるかに高速ですが、さらに最適化することができます。 最善の戦略は、max()メソッドをgroup byと組み合わせて使用することです。 *,max(create_time)をaから選択 ここで、create_time<="2017-03-29 19:30:36" ユーザーIDでグループ化 この文は、結果セットを user_id に従ってグループ化し、各グループ内で最大時間を持つレコードを取得すると理解できます。これにより、最新のレコードを一括でクエリすることが可能になり、テーブルを一度走査するだけで済むため、データ量が膨大な場合でも非常に短時間で結果を見つけることができます。 拡張機能: 資産機器テーブルができました: base_assets_turn 最新の資産管理者を照会する 注: 資産番号ASSETS_ID=254と仮定します。 次善の選択肢: base_assets_turn から * を選択 ASSETS_ID = 254の場合 create_time 降順で並び替え 制限 1 中間ポリシー: 選択 * から ( 選択 * から base_assets_turn ASSETS_ID = 254の場合 order by create_time desc) tt GROUP BY tt.ASSETS_ID; 最善の戦略: では、最善の戦略はどのように書けばよいのでしょうか? ぜひメッセージをお寄せください! 上記は、編集者が提供した最新のレコードをクエリするためのMySQL SQL文(最適化)です。皆様のお役に立てれば幸いです。ご質問があれば、メッセージを残してください。 以下もご興味があるかもしれません:
|
<<: Linux でのプロセスデーモン スーパーバイザーのインストール、構成、および使用
>>: ネイティブ Js で実装されたシンプルなシームレス スクロール カルーセルのサンプル コード
Vueはブール値でストレージを保存します今日、問題に遭遇しました。バックグラウンドから返された真偽の...
序文Linux 運用保守エンジニアとして、日々の業務の中で Linux サーバーの CPU 負荷が ...
序文MySQL の rowid の概念については聞いたことがあるかもしれませんが、テストや実践が難し...
序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...
目次セットは値が重複しない特別なコレクションです。セットコレクション基本API独自の価値判断セットを...
<iframe src="./ads_top_tian.html" all...
Docker イメージのダウンロードが停止したり、遅すぎたりするネットでいろいろな方法を検索しました...
1. 正規表現マッチング大文字と小文字を区別するマッチングの場合 ~ ~*は大文字と小文字を区別しな...
今日は、サンダーファイタータイピングゲームを実装します。ゲームプレイは非常に簡単です。それぞれの「敵...
目次1.画像レイヤーの数を減らす1. 命令の統合2. 多段階ビルド3. スクワッシュ機能を有効にする...
DOCTYPE が次のとおりである場合:コードをコピーコードは次のとおりです。 <!DOCTY...
この記事では、VMware Workstation 14 Proのインストールとアクティベーションに...
目次1. 遅いクエリSQLを見つけて最適化する方法a. スローログに基づいてスロークエリSQLを見つ...
img 画像タグに alt 属性を追加しますか?画像 img タグの alt 属性を見落とすことはよ...
自動検出を行う際には、ポートなどの情報を取得してjson形式で返すスクリプトが必ず存在します。Red...