8月第3週振り返り
なかなかハードな一週間でした。これでまだリリース一ヶ月以上前というのはなかなかにハードだなぁと感じています。
さて、今週の成果
「逆算式SQL教科書」
P112、相関副問い合わせ、まで読み進めました。いまいち理解できてないながらも、業務で早速使えるんじゃないかなぁという作業が発生したので、使ってみました。
適用対象としては、数十万レコードからなる注文データに対して、会員ID毎に該当する条件を満たした上で、かつその最新の注文レコードを取得する、という部分です。
結論としては、
注意点としては、あまりにも多くの相関問い合わせを行うとパフォーマンスが低下することがあります。また、SQL文自体読みづらくなる場合があります。ほどほどに使用するのがコツです。(P111)
これに見事にハマり、SQL文が終了しない、という悲しい結果になりました。
この経験から、一発のSQLで全てのデータをぶっこぬこう、というのは危険だということを学びました。
で、結局どのように解決したかと言うと、
- 条件を満たす会員IDを抽出
- 会員ID毎にループ、最新の注文レコードを取得
という流れです。
2つに分割すれば対したことなかったという…
このあたり、SQLに対する理解がまだまだ浅いなぁと思いつつ、初めに書いた副相関問い合わせのSQLが間違ってたんじゃないか、と疑ったりしています。
ここはこれからの課題ということで。
「サーバ/インフラを支える技術」
p189、Linux単一負荷を見極める、まで読み進めました。
この本は、学生時代に購入しながら、きちんと読んでいませんでしたが、自分がサービスを提供する側になって、ようやくこの本に書かれている事の重要さを身にしみて感じています。
はてなやKLabほど大きなサービスを手がけてはいませんが、システムを提供する側というのは、使用する技術をある程度深堀しておかないととんでもない目に合うなぁということを感じます。
実は、あまり詳細を述べることはできないのですが、先週、自分が関わっている案件のシステムが、この本に掲載されていたある危険な状態に陥っていました。
幸い事無きを得ましたが、この本を読んでいなかったら、それほど危険な状態だという認識にはならなかったと思います。
無知とは恐ろしいものだなぁと、システムを預かる人間として、もっと知識を深める必要性を痛感しています。
これからの勉強は、この本を軸にしながら、普段自分が触っているシステムの、安定して稼働させるために欠けている部分というのを見つけていきたいな、と考えています。
社内勉強会のスタート
とりあえず土曜日にスタートさせました。
今後の方針などを話つつ、現状自分が関わっているシステムについて意見交換をしました。
とりあえず決まった事
- 2週間に1度くらいのペースで開催
- 2週間掛けて調べる事を公表。2週間後にそれを発表する。
という流れです。
これは割と実際の業務と絡むところで進めていく予定にしています。
それとは別に1月に1度くらい社外の人を絡めた勉強会もスタートさせたいなぁと思っているんですが、それは社内勉強会や、今火を拭きまくってる某案件が完了してからかなぁと思ったり。