私はcorrelated subqueriesと参加することができます知っています。しかし、どちらが速いのですか?黄金のルールはありますか、それとも両方を測定する必要がありますか?どちらが速いか:相関サブクエリまたは結合?
9
A
答えて
16
まず、相関サブクエリは実際には結合のタイプです。最高の実行計画を生み出すための黄金のルールはありません。パフォーマンスに関心がある場合は、さまざまなフォームを試して、効果的なものを確認する必要があります。または、少なくとも、その決定を下すための計画を見てください。
一般に、相関サブクエリはいくつかの理由で避けがちです。第一に、それらはほとんど常に相関なしで書くことができます。第2に、多くのクエリエンジンが(インデックスを使用していても)ネストループ結合に変換し、他の結合方法が優れている可能性があります。このような場合、相関サブクエリはクエリを並列化することを困難にします。第3に、相関サブクエリは通常、SELECT節またはWHERE節のいずれかにあります。私はすべてのテーブルがFROM節にあるのが好きです。
しかし、相関サブクエリは多くの場合、効率的なクエリの実行方法です。これは、特にIN
句でサブクエリを使用する場合に当てはまります。だから、黄金のルールはありません。
関連する問題
- 1. どちらが速いですか:連合または連合?
- 2. mysql:相関サブクエリおよび/または左結合
- 3. 相関サブクエリが
- 4. サブクエリまたはOUTER結合
- 5. どちらが速いですか?
- 6. どちらが速いですか
- 7. クエリまたはサブクエリを結合する
- 8. mysql - "INNER JOIN"または "IN"。どちらが速いの?
- 9. データベースまたはメモリからのクエリですか?どちらが速いの?
- 10. どちらが高速で、key_cacheまたはOSキャッシュですか?
- 11. unordered_map:find()またはcount()のどちらが高速ですか?
- 12. ページ分割された結果セット内の選択サブクエリまたは左外部結合が速くなる
- 13. サブクエリの現在の結果を使用しているMySQL。相関サブクエリ?
- 14. 依存サブクエリから自己結合
- 15. Codeigniterサブクエリ結合
- 16. どちらが速いか[if(x or y)]または[yがxの場合else]
- 17. どちらが速いですか?定数、変数または変数配列
- 18. どちらが速いですか? Pythonのキャストとサブトラクション、またはディクテーションルックアップ
- 19. どちらが速いですか? ORDER BY TimestampまたはWHERE Timestamp =
- 20. どちらが速いですか?ストアドプロシージャの挿入またはダイレクト後のトリガー
- 21. どちらがパフォーマンスに優れていますか?クロス結合または新しいテーブル?
- 22. 相関サブクエリを使用したSQL Sum()
- 23. WordPress:テーブル結合サブクエリ
- 24. SQLクエリエラー(スキップ・レベルの相関と相関サブクエリがサポートされていない)
- 25. 相関サブクエリのmysqlの
- 26. FROMリストのOracle相関サブクエリ
- 27. サブクエリSQLとLINQの相関
- 28. 処理が速いのはどちらですか?
- 29. mysql、ifnullとcoalesceはどちらが速いのですか?
- 30. getattr()とdictルックアップはどちらが速いですか?
クエリに基づいて測定する必要があります。データ、サイズ、スキーマによって異なります。つまり、黄金のルールはありません。 – Cfreak
@Cfreak - 答えとして追加してください - 正しいですから。 – RQDQ