LoginSignup
16
16

More than 5 years have passed since last update.

やってはいけないSQL3種

Posted at

チューニングのことは全く知らない初心者でも
とりあえず以下のようなSQLは書かないようにすると
先輩から怒られることが減るよ、というお話。

本当は体系的にお勉強すべきなんだけど。

IN句を使うな

基本的に全件探しにいっちゃうためめっちゃ遅い。
EXISTSを使うことで10倍以上速くなることも。

左辺に算術式使うな

WHEREの条件式は、なるべく右側に変換、算術式を使うこと
INDEXが使えなくなるのを避けられる。

UNION、DISTINCTはなるべく避けて。

UNIONするならUNINON ALLで。ALLつけないと
DISTINCTをつけた時と同じことをしてしまう。
DISTINCT処理はけっこう重いので極力減らして下さい。
どーしても必要なこともあるけど。

先輩いわく、どれも基本的なことらしい。
でも、どれも現場でそこそこ見かける記述なので、
自分含め初心者は気をつけよう。

ちなみに自分は3つとも書きました()

おまけ:もうちょっとキレイに書いて!

SQLはインデントの付け方などが人によって書き方がバラつきます。

初心者のうちは先輩をマネると思うんですが
先輩もかなり書き方がバラついたりしています。

整形ツールなどを活用しましょう。
http://www-atl.blog.so-net.ne.jp/2015-02-08#more

16
16
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
16