2018年9月21日金曜日

【SEの仕事】数十万件のテーブル作ったら…【PostgreSQL】

お客さんの依頼で数十万テーブル(数百万だったかも)作成した時の話です。動的にテーブルを選択するということです。

通常はやらないです。と言うか、普段の開発から逸脱したことはすべきではないです。

上司がその依頼を受け、私は設計後にそのプロジェクトに入ったので止めようが無かったのです。

PostgreSQLの開発者が、数十万テーブルを想定してるのか不明ですが、RDBの使い方としては誤りと言っていいと思います。リレーショナルデータベースと言うものを全く理解してません。リレーショナルデータベースをただのデータとして捉えてはいけません。

結論を言うと、create tableで躓く羽目になりました。テーブルが多くなれば多くなる程、create tableの速度が落ちて行ったのです。確か数十万だか、数百万テーブル作成するのに、1日程度掛かりました。あり得ないです。再構築が容易く出来ないです。また、運用開始後、列追加などが容易く出来るか心配です。

そもそも、create table文を自作する羽目になる(ツールでcreate table文を作成後、テーブル名に_1、_2、を足していく)わけで、これもあり得ないです。通常は、visualstudioやeclipse、そのほかのツールで自動生成し、速攻DBに投入します。(初回起動時に生成する方法もあります。)

これでは、通常通りの開発が出来なくなります。元々、そのプロジェクトは破綻してましたので、どれ程の遅延を招いたか定かでは有りませんが、確実に開発速度を落としていました。

この話に限らず、通常の開発から逸脱したことは避けるべきです。

0 件のコメント:

コメントを投稿