SQLの最適化を行いたいのですが

エンジニア質問箱

質問箱メニュー

検索

質問する

SQLの最適化を行いたいのですが

PapaRasさん
質問日時: 2019/06/18 07:05

SQLの最適化
こんなmysqlのSQL分があるのですが、スピードが遅くて困っています。
JOIN等使えば早くなりそうなのですが、当方SQLが経験不足でして、どうしても、うまくいきません。
どなたかご教授いただけますとありがたいです。
よろしくお願いいたします。

SELECT *, CONCAT(todohuken, shikuchoson, choiki, banchi) AS address FROM customers cm1 WHERE is_valid = '1' AND (cm1.id IN (SELECT
c1.id_customer
FROM constructions c1
WHERE (c1.order_confirm <> '3' OR c1.order_confirm IS NULL)
OR (c1.id IN (SELECT c2.id FROM constructions c2, estimates e WHERE c2.id = e.id_construction)
OR
c1.id IN (SELECT c3.id FROM constructions c3, directions d WHERE c3.id = d.id_construction)))
OR
(cm1.id IN (SELECT id_customer FROM purchases))
) AND cm1.customer_name COLLATE utf8_unicode_ci LIKE '%テスト%' LIMIT 100 OFFSET 0 )

キーワード

全て見る

この質問にキーワードを設定する

違反通報

この質問に回答する

並び替え:
▼最新順に表示
▲投稿順に表示
回答1
回答日時 : 2019/06/23 12:52

ほんわかさん

まずはINDEXをちゃんと張っているか確認とテーブル最適化
https://qiita.com/ykawasaki683/items/c03e235b167095f951cc

この回答が「なるほど」と思ったらクリック→

なるほど0人

違反通報

並び替え:
▼最新順に表示
▲投稿順に表示

関連するキーワードの製品を探す

この質問に回答する

この質問をブックマーク

最新の質問

ポリイミド(BPDA-ODA)について
ポリイミド(BPDA-ODA)を溶媒をDMAcとして熱イミド化(100、200、300℃で1時...
排血処理方法
動物(豚、鶏等々)殺傷後の血液等を下記の流れのように処理したいのです。 殺傷した血液を一箇所...
貯湯タンク内の熱と流体の動き
興味本位の質問で恐縮ですが、 裏のお家にヒートポンプ給湯機の貯湯タンクがあり、 ふと気にな...

月間ユーザーランキング TOP10



質問箱メニュー

検索

質問する

あと2000文字入力できます。

入力欄を広げる

ページトップへ