今回かなり技術寄りの話です。
いわゆる「オブジェクト指向プログラミング」というものが広まり始めたのは、かれこれ30年近く昔でしょうか。
その後、様々なプログラミング言語や各種フレームワークが出てきて、今ではすっかり主流になりました。
それ自体には何も問題ありません。
が、物事にメリットとデメリットがあるのは世の常。
デメリットの一つがデータベースです。
えーと、専門外の方のために少し解説します。
情報システムでは様々な「データ」を扱いますが、それらは通常「データベース」という別のソフトウェアに格納します。
その「データベース」にデータを格納したり、取り出したりするために、「SQL」と呼ばれる共通言語を使います。
「SQL」は比較的敷居が低く、わかりやすい言語体系なのですが、慣れるためにはやはりある程度の技術習得が必要です。
時代とともに「できるだけ簡単にプログラム開発することができる」ように各種言語やフレームワークは進化を続けました。
その結果、「SQL書かなくてもプログラム開発することができる」となったのが現在です。
オブジェクト指向プログラミングでは、「SQLは自動生成してデータベースにアクセスする」という方式が主な形態になっています。
ところが、この「自動生成」が時としてとんでもないことを誘発してしまうのです。
特に「データ量が膨大な情報システム」において。
「SQLは比較的敷居が低い」と書きましたが、そのかわりとても「奥が深い」言語です。
データ量が増えると、書き方ひとつで実行速度が大きく変わります。
それこそ「数十分」が「0.1秒」くらいに。
「どのように書けば早くなるか」はその時のデータの状態によります。
一概に「こうすれば良い」という書き方はありません。
ある程度の熟練が必要なのですね。
「自動生成されたSQLのまま、時間がたってデータ量が増え、どんどん速度劣化してついに動かなくなってしまう情報システム」とか、
「SQL覚えないままシステム構築し続けたため、肥大化したデータベースの取り扱いができないITエンジニア」がどんどん増えるのも、それはそれで困りものだな、と少し危惧しています。