ゲーム史上最高スコアトップ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コマンドを使用してファイルの内容を表示します
Docker ネットワークの作成に –subnet を追加した後、docker network ls...
序文最近、プロジェクトで SQL Server を使用するプログラムに遭遇しました。このデータベース...
1. なぜパッケージングを行うのですか?全体的なコード呼び出し、リクエストの公開処理、パーソナライズ...
目次JSONが登場JSON構造JSONオブジェクトJson オブジェクトと JavaScript オ...
MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...
序文vsftp は使いやすく安全な FTP サーバー ソフトウェアです。システムユーザーまたは仮想ユ...
目次序文環境の準備カテゴリコンポーネントアプリのコンポーネント1. デフォルトスロット2. 名前付き...
序文WeChat ミニプログラムは新しいオープン機能を提供します!ついにミニプログラムにHTMLペー...
この記事では、ソーシャル ウェブサイトのホームページを比較分析することで洞察を得て、ソーシャル ウェ...
この効果と同様に、方法も非常に簡単です。ヘッダーに次のように記述します: <link rel=...
主にインストール後に my.ini ファイルを確認するために、msi 形式でインストールしました。フ...
Dockerコンテナのインストール時に遭遇しやすい2つの問題1.ポートはすでに割り当てられています(...
目次Dockerコンテナのデータ量データボリュームの使用方法1: コマンド-vを使用して直接マウント...
目次DockerコンテナのエクスポートDockerコンテナのインポートこの記事では主に、コンテナ...
最近、セキュリティ製品をテストする必要があったため、mariadb の起動ユーザーを root に調...