kawama.jp

is nullは重い

カテゴリ: MySQL — タグ: , — 2014年2月17日 12:13 — Comments (0)hatebu count

テーブルAテーブルBがあって、2つを結合し、AにデータがあってBにデータがないものを抽出するのに、B.hoge is null って感じでis nullを使ってました。

最初はこれで問題なかったものの、データ量が多くなるにつれてパフォーマンスが悪くなってきており、調べてみたらこの is null が原因でした。

is nullを使うと、強制的に全表走査になっちゃうそうです。
http://memo.sonorilo.net/post/187525676/sql-11

今回は仕様の都合上、is nullは外せませんでした。
代わりに絞り込みを少し強めにして、パフォーマンスを改善しました。
平たく言うとその場しのぎです。

実装後に変更するのは難しいので、設計段階でできるだけnullを使わないよう、心がけないといけませんね。

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Copyright (C) 2002 - 2017 kawama All Rights Reserved. — Powered by WordPress