リリース

金曜にたのまれて「ちょっと考えさせてください。」と言った追加案件。解決策第1の案は、クエリで頑張るというありきたりの解。金曜のうちに作ってみたが、結果がおかしい。いろいろ調べて、今日改良版をトライしてみたが、遅い。激遅。結果が正しいかどうか待てないほど遅い。話にならない。何か良いアイデアはないかなあ、って思いつくのは、あらかじめ計算しておいた結果をDBに持っておいて、それに従ってデータを表示する、というもの。こうすればDBでの検索時には計算結果は分かっているので、その条件でクエリを発行するだけでよく、速いのは目に見えていた。問題は、あらかじめ計算結果をDBに持たせるほう。既に投入済みのデータについては新たに手を加えないといけない。これがどう考えても遅そう。データ数も250〜300万件くらいになってくると、テーブルカラムを追加するだけでも、結構な時間がかかるし、それに「あらかじめ計算した結果」を入れていくのも、時間がかかりそう。
と思ったのがだが、とりあえず小さいところで実験してみたら案外速い。これなら大丈夫かも。ということで、全データの書き換えに取り掛かったが、案外あっさりと、ものの1時間程度で終わってしまった。ちょっと拍子抜け。で、データは出来たのでクエリを書き換えて結果を見てみる。合っているっぽい。もちろん速度は申し分ない。こんなにとんとん拍子に話が運んで良いのだろうか?と思いながらもテスト。よさげ。よし、いいやリリースしちゃおう。金曜日に話をもらって月曜の夜にはリリース。そんなに軽い話ではなかったのだが、軽く出来てしまった。私って意外と頭いいのかも??