2011年2月25日金曜日

MySQL テーブルのIDにbigintはどうか

毎週1回必ず40万レコード追加するテーブルがあります。
データ型はintで十分です。
unsignedにして約40億レコード登録できる計算なので約1万日は使えます。
毎週1回の処理を1万回なので約2,500ヶ月・・200年くらいの計算ですね。

それまでそのシステムが動いてるとは思えないし、僕は間違いなくこの世にはいません。

そのテーブルはintで十分なテーブルだったんですが、あまりそういう計算をせずに作ったので、bigintでやってしまいました・・何となくデカいデータになりそうだと思ったので・・・
実際のところ、int unsignedで毎日40万レコード追加だったとしても20年以上いけます。
bigintをIDのauto_incrementで使う時なんて、ちっぽけなアプリを作ってるうちはなさそうですね。
Twitterみたいなのを作ったら必要かもしれないけど。

もう納品したし、問題なく動いているので別にいいんですけど、やっぱりこういうのはしっかりと計算してからやらないとダメですね。

VARCHARの文字数とかも結構適当にやってしまいます。
メールアドレスは300くらいとか住所は200とか、電話番号は20とか、ちょっと余裕があるくらいで調整してますが、これも実際どうなんでしょうか?
余裕は必要だけど、余りすぎても問題だと思います。

今回納品した制作物と関連する別のパートで、別の業者が手がけてたんですが、VARCHARでやるようなところを全部TEXT型で宣言してました・・
これもちょっと良くないんじゃないの?と思ったけど、問題なく動いているのでいいのかなぁ??

何かプログラマーって結構適当ですよね(^^;
僕も含めて、なんちゃってプログラマーが増えすぎたのかな?
本物のプログラマーならこんな適当な仕事しないでしょうね。

悪いのは厳しい納期だ!と自分に言い訳をして放置します(w
今回のはコメントもほとんど書いてないや・・もうどんなプログラム書いてたか分からん(--;

0 件のコメント:

コメントを投稿