ネストされたクエリのSQL速度と最適化

Abhijit Srivastava

色と16進コードを格納するためのテーブルスキーマを検討してください

CREATE TABLE `tbl_master_colors` (
  `color_id` int(11) NOT NULL,
  `color_name` varchar(100) NOT NULL,
  `color_hex` varchar(6) NOT NULL,
  `color_hex_hashed` varchar(7) NOT NULL,
  `color_r` int(11) NOT NULL,
  `color_g` int(11) NOT NULL,
  `color_b` int(11) NOT NULL,
  `status` enum('1','2','3') NOT NULL DEFAULT '1',
  `inserted_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_ts` timestamp NULL DEFAULT NULL,
  `deleted_ts` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

今、私はすべての赤い色を抽出するためにクエリする必要があります

SELECT * FROM tbl_master_colors 
WHERE color_name LIKE "red%"
ORDER BY color_g DESC, color_b ASC, color_r DESC

今、私はこのクエリのさらに2つのバリアントを持っています

SELECT * 
FROM (SELECT * FROM tbl_master_colors 
WHERE color_name LIKE "red%") s
ORDER BY color_g DESC, color_b ASC, color_r DESC;

SELECT * 
FROM (SELECT * FROM tbl_master_colors 
ORDER BY color_g DESC, color_b ASC, color_r DESC) s
WHERE color_name LIKE "red%"

質問:上記の2つの選択クエリバリアントのどれが最速で、その理由は何ですか?可能であれば、理由を付けて3つすべてを順番に並べてください。

考えてみてください。データセットには9x 10 ^ 6のデータエントリがあり、10 ^ 4の範囲で出力されます

oysteing

MySQL 5.7以降、これら3つのステートメントはすべて同じパフォーマンスを示します。派生テーブル(FROM句のサブクエリ)は外部クエリにマージされます。https://dev.mysql.com/doc/refman/5.7/en/duced-table-optimization.htmlを参照してください)。

SQL標準では、最後のクエリで他の2つのクエリと同じ順序が保証されているとは思いませんが、MySQLではORDER句も外部クエリにマージされます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQL選択の最適化ネストされたwhereクエリ

分類Dev

ネストされたクエリの最適化

分類Dev

このネストされたSQLSELECTクエリを最適化する方法

分類Dev

ネストされたMySQLクエリを最適化することはできませんか?

分類Dev

Slickで生成されたSQLクエリの最適化

分類Dev

関数スキャンとネストされたループの見積もりが遅くて悪い場合にPostgreSQLクエリを最適化する

分類Dev

SQL のサブクエリの最適化されたクエリ

分類Dev

Powershellスクリプトの速度。求められる最適化

分類Dev

ネストされたレベルのJava 8ストリーム最適化

分類Dev

SQLiteは外部制約によってネストされたクエリを最適化しますか

分類Dev

ネストされた条件付きSQLServerクエリ2008R2を最適化する方法

分類Dev

最適化:最も最適化された方法でクラスターのリストを作成します

分類Dev

AMPL最適化関数のネストされた積と合計の構文

分類Dev

SQL:冗長なユニオンコードでネストされたクエリを最適化しますか?

分類Dev

SQLiteクエリの最適化:指定された時間枠と重複するタスクの選択

分類Dev

ネストされたforループアルゴリズム、JavaScriptの最適化

分類Dev

ネストされたクエリを最適化して、パフォーマンスの大幅な低下を回避します

分類Dev

ネストされたループの最適化の改善

分類Dev

C ++:最適化されたリスト

分類Dev

ネストされたforループの最適化

分類Dev

Sqoopインポートの最適化されたOracle境界クエリ

分類Dev

最適化されたDjangoクエリセット

分類Dev

ネストされたSQLクエリ

分類Dev

洗練されたクエリの最適化

分類Dev

Mysqlのネストされたクエリ速度が非常に遅い

分類Dev

ネストされたクエリSQLServerの簡素化

分類Dev

ネストされたforループとjavascriptのifステートメントを最適化する

分類Dev

Bashスクリプト; 処理速度の最適化

分類Dev

スクリプトの速度を最適化する方法は?

Related 関連記事

  1. 1

    SQL選択の最適化ネストされたwhereクエリ

  2. 2

    ネストされたクエリの最適化

  3. 3

    このネストされたSQLSELECTクエリを最適化する方法

  4. 4

    ネストされたMySQLクエリを最適化することはできませんか?

  5. 5

    Slickで生成されたSQLクエリの最適化

  6. 6

    関数スキャンとネストされたループの見積もりが遅くて悪い場合にPostgreSQLクエリを最適化する

  7. 7

    SQL のサブクエリの最適化されたクエリ

  8. 8

    Powershellスクリプトの速度。求められる最適化

  9. 9

    ネストされたレベルのJava 8ストリーム最適化

  10. 10

    SQLiteは外部制約によってネストされたクエリを最適化しますか

  11. 11

    ネストされた条件付きSQLServerクエリ2008R2を最適化する方法

  12. 12

    最適化:最も最適化された方法でクラスターのリストを作成します

  13. 13

    AMPL最適化関数のネストされた積と合計の構文

  14. 14

    SQL:冗長なユニオンコードでネストされたクエリを最適化しますか?

  15. 15

    SQLiteクエリの最適化:指定された時間枠と重複するタスクの選択

  16. 16

    ネストされたforループアルゴリズム、JavaScriptの最適化

  17. 17

    ネストされたクエリを最適化して、パフォーマンスの大幅な低下を回避します

  18. 18

    ネストされたループの最適化の改善

  19. 19

    C ++:最適化されたリスト

  20. 20

    ネストされたforループの最適化

  21. 21

    Sqoopインポートの最適化されたOracle境界クエリ

  22. 22

    最適化されたDjangoクエリセット

  23. 23

    ネストされたSQLクエリ

  24. 24

    洗練されたクエリの最適化

  25. 25

    Mysqlのネストされたクエリ速度が非常に遅い

  26. 26

    ネストされたクエリSQLServerの簡素化

  27. 27

    ネストされたforループとjavascriptのifステートメントを最適化する

  28. 28

    Bashスクリプト; 処理速度の最適化

  29. 29

    スクリプトの速度を最適化する方法は?

ホットタグ

アーカイブ