質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

3回答

771閲覧

MySQLにおいてテーブルをJoinするのとしないとではどちらが実行速は速いでしょうか

doumeishi

総合スコア52

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2020/05/19 00:53

いつもお世話になっております、ドウメイシです。
ググっても十分な回答が得られなかったので質問させてもらっています。

下記のSQLのように、Joinするのとしないとではどちらが実行速が速いでしょうか。

■Join無し
SELECT
a.member1, b.member1
FROM
Table1 a, Table2 b
WHERE
a.id = b.id

■Join有り
SELECT
a.member1, b.member1
FROM
Table1 a
LEFT JOIN Table2 b ON a.id = b.id

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

下記のSQLのように、Joinするのとしないとではどちらが実行速が速いでしょうか。

書き方の違いだけで、「Join無し」の方もJOINを行います

そして、FROMに複数書いたときは、(実動作は最適化してくれると思いますが)概念上、両テーブルの全部の組み合わせを作成して(CROSS JOIN)、その中からWHEREで抽出する、という意味になります。

そういう意味論を考えれば、JOINを明記するほうが適切です。

投稿2020/05/19 01:00

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/05/19 01:02

なお、後者ではLEFT JOINとなっている以上、Aにしかないidがあった場合、両者で結果は異なってきます。
guest

0

後者のSQLをinner joinとした場合ですが、mysqlのcross joinはwhereをつけるとinner joinと同等の内部処理になります
実際explainで確認できるかと思いますが(もしかしたら現在のバージョンは違うのかしら?)

それから以下の内容を見て特に該当する処理に関する記載がなければ速度面の差は無いと考えていいのではないかなと
https://dev.mysql.com/doc/refman/5.6/ja/optimize-overview.html

投稿2020/05/19 01:14

hentaiman

総合スコア6426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

実際に実行時間を計測してみては?
参考

投稿2020/05/19 00:55

kai0310

総合スコア2076

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問