あいつの日誌β

働きながら旅しています。

DB のインデックス設計できますか?

あらすじ

DB インデックスを知らないエンジニアがいるらしいので啓蒙したいという話です。

DB のインデックス設計は HDD 使っている頃には最重要なスキルだった気がしますが、今の時代、エンジニアに求められる事が増えすぎているのでインデックスの事に関して知らない人(DBインデックスが起因する問題に出会ってない人)がいても不思議ではない気がします。

というわけで何故 DB インデックスを知らない人がいるのか?という事に関しては我々のようなおじさんエンジニアが伝えないといけいない事をちゃんと伝えていないからなんじゃないかと思いペンをとりました。

といいつつ

詳しい事は過去にそういう記事を書いたのでこちらを見てください...

http://okamuuu.hatenablog.com/entry/2013/02/23/005046

そういえば

昔とある企業でいつも同じクエリーが遅いとインフラエンジニアから苦情が来るので解消してくださいと言われたので調べたら掲示板の全件取得にインデックスが効いてなかった事があります。

どうやら最初は index が効いていたようですが、後から delete_flg を追加するタスクが発生し、そのフラグのせいでフルーテーブルスキャンに変わってしまったようです。日時の経過にともないデータ量が増えてある日インフラチームから警告が発生した。という事だと思います。

上述のエントリーはそのタスクを解消したときの方法を紹介しています。

割とあるあるな話ではあると思いますが、こういう昔ながら話をもう一度してみると誰かの役に立つかもしれませんね。近年のWEB開発者は覚える事が多すぎて以外と知らない事が多いでしょうし。

そういえば 2017/5/27(土) にアットホームなカンファレンスが開催されるようです。昔あなたが困った事を発表したりすると誰かの役に立つかもしれません。

http://y8-2017-spring.hachiojipm.org/