応用読了目安 25 分#性能#N+1#インデックス#キャッシュ
検証環境では速い一覧が、本番でだけ 9 秒かかる
同じコード、同じクエリ、同じインデックス。それでも本番だけ遅い。5つの判断点で、あなたは何を選びますか。
このケースで問われること
このケースは、測る前に直さないことを扱います。
遅いと言われたとき、心当たりのある場所から直したくなります。「N+1 だろう」「インデックスが無いのだろう」。多くの場合それは当たりますが、当たったことと、それが今回の原因であることは別です。
このケースには遅い理由が複数あります。そのうち1つを直しても、数字はほとんど動きません。どれが支配的かを先に測れるかが最初の分岐です。
順に 5 つの判断点があります。それぞれで一度自分の答えを決めてから、先へ進んでください。結論を先に読むと、判断の練習になりません。
扱う範囲は data/n-plus-one・data/index・data/execution-plan・network/caching にまたがります。個々の仕組みを知っていることと、混ざった状況で原因の順位をつけられることは別だ、というのがこのケースの主題です。
読み終わりましたか?
読了にすると、これを前提とする記事がロードマップで開放されます。