カラム数が増えるとDB性能が劣化する?

/ db

テーブルのカラム数が増えていくと、DB性能が悪くなる気がする。

そんなメンバーの声を聴いて、そういえば自分も実体験として、100カラムほどあるテーブルの性能問題にぶつかったことがあったことを思い出した。やたらとSELECTが重い。とは言え、その原因がカラム数にあるというのは眉唾。

実際に手元にあった PostgreSQL8.1 で試してみることにした。

続きを読む "カラム数が増えるとDB性能が劣化する?"

ロスト・ジェネレーションを、がんばろう

ロスト・ジェネレーション世代に生まれて - GoTheDistance

同じくロスジェネな自分は、うんうん頷きながら読んでしまった。自分はあまり真剣に就職活動をしなかったので泣くほどでもないけれども、当時の同級生やその周辺に漂っていた停滞感、そしてそこに横たわっていた不条理を思い出さずにはいられなかった。

あきらめるところから、始まった。

自分もまた、就職氷河期だった2001~2002年に新卒で就職活動を経験した。有効求人倍率の数字は、0.5を少し上回るくらいだったと思う。けれども、実際にはそれよりも門戸は狭いように感じた。首都圏から遠く350kmの地方都市で、まともな地元就職の口なんて皆無だった。

バブル崩壊後の長引く平成不況で、自分の父親世代がサクッとリストラされるのを目の当たりにしたり、テロだ、災害だ、大企業の倒産だのっていうニュースと共に、自分は青春時代を過ごした。刷り込まれたのは、「既存の枠組みに入ったら負けだ」ということ。

大企業に入れたからって安定もしないし、既得権益の甘い汁だって吸えそうもない。そもそもフリーター量産型社会で、就職すること自体にどんな未来があるのか不透明。これまでのあり方に、あきらめるのは当然のことだったように思う。結局、自分はベンチャー系中小企業を就職先に選んだが、もし今の自分が当時を判断しても、同じくあきらめると思う。

自己責任ってやつで、弱小ベンチャーに就職したことは、自分にとって好判断だった。もし、ゆるい就職活動環境で、大企業にもぐりこんでいたら、今の自分にたどり着くのに、あと3年はかかったろうし、開花せずに終わった才能もあったと思う。ロストした代わりに得たものも、ある。

とは言え、その自己責任ってやつを全員に求めて成立するかっていうと、それは絶対にない。自己責任でけものみちに行けるほど強い人間なんて、どの世代だってマイナーだと思う。規制緩和でセーフティーネットをぶっ壊しておいて、自己責任と言うのは、「向こうに渡る綱はあるんだから行けば良いのに、命綱はないけどね」っていうのと大差ない。

それでも、もうあきらめているから、どうして欲しいなんてこともないけど。

他の世代からの同情も揶揄も、ロスト・ジェネレーションには要らない。一度、あきらめちゃった人間は、なかなか強いもの。これからの激動の時代にサバイブしていく本質的な力を持っているのは、この世代なんじゃないかと思えるほど。

失ったものは、返ってこない。でも、失ったものを、失うこともない。ロスト・ジェネレーションのみなさん、がんばりましょう。

なんだか急にムキーッてなって書いてしまった。感情的になって書いたところで価値なんてないけど、生あたたかくしてやってください!

JavaScriptで外部CSSの値を取得する

JavaScriptで外部CSSで定義した値を参照する場合

var mystyle = element.style

ではなく

var mystyle;
if (document.defaultView && document.defaultView.getComputedStyle) {
    // firefox, opera
    mystyle = document.defaultView.getComputedStyle(element, '');
} else if (element.currentStyle) {
    // ie
    mystyle = element.currentStyle;
}

ってしないといけない。

恥ずかしながら今まで全然知らなかったけど、よく困らなかったなあ、自分。prototype.js には、Element.getStyle() というのがあるから、それを使えば良いのだけど、やっぱり基本原理みたいなものを押さえていないと気持ち悪いので。

詳細はこちらが、スゴイ詳しいです。amachang 氏、さすがの内容。

getComputedStyle について調べてたら深みにハマったのでメモ - IT戦記

MySQLという選択肢

/ db

今度のプロジェクトのDB構成を考えていて、当初からMySQLという選択肢が頭を離れない。

これまでのプロジェクトを見ると、PostgreSQLで9割を占める。Oracleもあったけど、ライセンス高いから省略。一方、MySQLは触ったことがあるという程度。チューニングやSQL方言など、慣れないことが多いだけに、いつもその採用には二の足を踏んできた。

ただ、mixiやはてなといった大規模サイトでのMySQLの実績を横目に見て、それなりの規模のアプリケーションならMySQLを真剣に考える必要がありそう。こんだけ流行しているわけだから、ちゃんと触ってノウハウ蓄積したいという思いもあるし。

PostgreSQLに比べて、MySQLが良いなと思っているところ。

  • レプリケーション機能が標準で付いている。
  • Federated ストレージエンジンが使える。

日本語対応とか、スレッドとプロセスの違いとか、細かいところで違いはあるんだけど、そこはさておき。要は、スケーラビリティにおいてMySQLが優れているように思えて、気になっている。

以前は両者の性能差がもっとあったので、そんなに悩むことは無かったけど、もはやエンタープライズだからPostgreSQL、WebサービスだからMySQLっていう安易な選択もしちゃいけないんだと思う。なんなら両方が合体しちゃえば良いのに、とかトンチンカンなことを言ってしまいそうだ。

こんなわけでMySQLに後ろ髪ひかれる思いなんだけど、きっと今回はPostgreSQLになるんだろう。いまの自分の状況では、拡張性の要件を除いて、まだPostgreSQLに優位性がある。地道に検証を続けて、近いうちにMySQLで組めるようにもっていけるといいな。


最新エントリー
カラム数が増えるとDB性能が劣化する?
ロスト・ジェネレーションを、がんばろう
JavaScriptで外部CSSの値を取得する
MySQLという選択肢
あわせて読みたいブログパーツ