ゲーム史上最高スコアトップ100をチェック SQLコード cdb_playsgame ps から ps.* を選択 WHERE ps.credits=(select MAX(credits) cdb_playsgame ps1より ここで、ps.uid=ps1.uid かつ ps.gametag=ps1.gametag) かつ ps.gametag='yeti3' GROUP BY ps.uid order by ps.credits desc LIMIT 100; SQLコード 選択 ps.* cdb_playsgame psから、(ps1.uid、ps1.gametag、クレジットとしてMAX(credits)を選択) cdb_playsgame ps1 から uid、gametag でグループ化) t ここで、ps.credits=t.credits かつ ps.uid=t.uid かつ ps.gametag=t.gametag かつ ps.gametag='yeti3' GROUP BY ps.uid order by ps.credits desc LIMIT 100; 実行時間はわずか 0.22 秒で、元の 25 秒の 10,000 倍の高速化です。 その日の最高のゲームスコアをチェック SQLコード ps. *、mf. *、m.usernameを選択します cdb_playsgame psより LEFT JOIN cdb_memberfields mf ON mf.uid = ps.uid cdb_members m を m.uid = ps.uid に左結合します ここで、ps.gametag = 'chuansj' AND FROM_UNIXTIME( ps.dateline, '%Y%m%d' ) = '20081008' そして ps.credits = ( 選択MAX( ps1.credits ) cdb_playsgame ps1より ここで、ps.uid = ps1.uid かつ ps1.gametag = 'chuansj' AND FROM_UNIXTIME( ps1.dateline, '%Y%m%d' ) = '20081008' ) グループ化 ps.uid クレジット順で並べ替え 制限 0 , 50 クエリのように: AND ps.credits=(SELECT MAX(ps1.credits) {$tablepre}playsgame ps1 から、ps.uid=ps1.uid かつ ps1.gametag = '$game' AND FROM_UNIXTIME(ps1.dateline, '%Y%m%d') = '$todaytime' ) 特に時間がかかる また、次のようにもします: FROM_UNIXTIME(ps1.dateline, '%Y%m%d') = '$todaytime' このようなステートメントでは、各データ行の値を関数を使用して計算し、次のように調整する必要があるため、インデックスが無効になります。 SQLコード かつ、ps1.dateline >= UNIX_TIMESTAMP('$todaytime') //変更後 ps. *、mf. *、m.usernameを選択します cdb_playsgame ps、cdb_memberfields mf、cdb_members m、(から SELECT ps1.uid, MAX( ps1.credits ) AS credits cdb_playsgame ps1より ここで、ps1.gametag = 'chuansj' かつ、ps1.dateline >= UNIX_TIMESTAMP( '20081008' ) グループ化 ps1.uid ) として ここで、mf.uid = ps.uid かつ、m.uid = ps.uid かつ ps.gametag = 'chuansj' かつ ps.credits = t.credits かつ ps.uid = t.uid グループ化 ps.uid クレジット順で並べ替え 制限 0 , 50 各プレーヤーについて、プレーヤー番号、名前、受けた罰金の数を調べます。ただし、少なくとも 2 回の罰金を受けたプレーヤーのみを調べます。 よりコンパクトなクエリの場合は、FROM 句にサブクエリを配置します。 SQLコード プレーヤー番号、名前、番号を選択 (PLAYERNO、NAME、 (選択カウント(*) ペナルティから PENALTIES.PLAYERNO = の場合 プレイヤーズ.プレイヤーNO) 番号として プライヤーから)PNとして 数値>=2の場合 FROM 句のサブクエリは、各プレーヤーのプレーヤー番号、名前、およびペナルティ番号を決定します。次に、この番号は中間結果の列になります。次に条件が指定され (NUMBER>=2)、最後に SELECT 句内の列が取得されます。 要約する 以上が、MYSQL サブクエリとネストされたクエリの最適化例の分析に関するこの記事の内容のすべてです。皆様のお役に立てれば幸いです。興味のある方は、MySQL IN ステートメントの遅いサブクエリの効率を最適化する手法の例、MySQL サブクエリの union と IN の効率に関する簡単な説明などを参照してください。不備がある場合は、メッセージを残してください。編集者が適時に修正します。 123WORDPRESS.COM をサポートしてくださっている皆様、ありがとうございます! 以下もご興味があるかもしれません:
|
<<: jsはaudioContextを通じて3Dサウンド効果を実現します
>>: Linuxでmore、less、catコマンドを使用してファイルの内容を表示します
例を通して、MySQL のデータ テーブル送信のクエリが遅い問題の解決策を共有しました。最近、コード...
<br />内容はインターネットから転載したものです。どこから見つけたのか忘れてしまいま...
1. 2 列レイアウトとは何ですか? 2 列レイアウトには、左側が固定幅で右側が適応幅のレイアウトと...
この記事では、省と市の簡単な連携を実現するためのJavaScriptの具体的なコードを参考までに紹介...
みなさんこんにちは。私は梁旭です。 Linux を使用するときに、計算を行う必要がある場合があり、そ...
仕事で、これまで一度も書いたことのないケースに遭遇しました。午後の半分をその作業に費やし、ついに書き...
目次1. シンプルなページの例2.uni-appはvueコンポーネントとミニプログラムネイティブコン...
背景go-fastdfs は、http プロトコルをサポートする分散ファイルシステムです。一般的なプ...
目次1. オプションの連鎖演算子 [? .】 2. 論理的な空の代入 (?? =) 3. 論理和代入...
目次1. nginxのインストールと操作(Mac OS環境) 2. nginxルールの設定3. コマ...
IDEA は Java で最も一般的に使用されている開発ツールであり、Docker は最も人気のある...
準備するこの記事の環境情報: ソフトウェアバージョンセントOSセントOS7.4マイグレーション8.0...
インデックス条件プッシュダウン (ICP) は MySQL 5.6 で導入され、クエリを最適化するた...
明らかな HTML、隠された「公開スクリプト」 Web ページのダウンロード時間を短縮する鍵は、フ...
目次導入ログ分類パラメータファイルエラーログファイル完全なログファイルスロークエリログバイナリログフ...