今日昼間、あるクエリチューニングをして、無事解決できたのだけど、その時の原因がSQLのWhere句に関数が使われていてインデックスが使われないことから律速になっているという原因だった。
対応した後に @tnmt と話していたのだけど、なんか僕らとかだと関数使ってる = インデックスが効かないみたいなの、経験からシュッと気づけるけど、経験したことない場合、こういうの気づけ無いし教えるのも点(点という表現はその後 @kentaro と話していた) にしかならんよなみたいな話をした。点というのはその局所的な原因解説、対応方法を教えるのはもちろんやるんだけど、大体障害や律速点は二度と起きないようにしちゃうから、教えたことが活きることは少ないし、体系的に理解してないと応用もできないみたいな感じ。
今回は僕が得意としてるバックエンド、インフラの話だからわかるけど、たとえばこれがIoTデバイスの話とかだったら僕はてんでわからんので、別に僕がどうこう、人がどうこうの話じゃない。
話を戻すと、チューニングもそうだし、インシデント対応とかもそうなんだけどそういうときに対応できる、できないって先の点の引用を踏まえるといかに長い線を紡げるかみたいなの結構大事だなって思った。
単純に同じことをやって経験として蓄積する方法もあるだろうし、とにかく本やブログなどの情報を読み漁る方法もあるだろうし。
なんか全部人類の脳内とかdumpして人にimportできたらそれはそれで効率的なんだろうけど、その未来はすぐには来そうにないから難しい。