タグ

ブックマーク / nippondanji.blogspot.com (3)

  • データベースアプリケーション開発を炎上させる負のスパイラル

    毎度おなじみ、はてブのホットエントリに「SIをダメにする負のスパイラル」というタイトルのまとめが掲載された。きしだ氏とはかなり視点は違うものの、開発現場の問題点については少し思うところがあるので意見を書いてみようと思う。と言っても、以下の話の内容はデータベースアプリケーションに限定した話であり、またSIerだけに限った話ではないのでその点はご容赦頂きたい。もちろんSIer各位の案件はデータベースは必須なので、エントリで触れる問題点には該当するだろう。 Q.なぜ炎上するのか? A.正しいデータベース設計ができていないから結論から言おう。データベースアプリケーションの開発が炎上するのは正しいデータベース設計ができていないからだ。ここでいう「正しい」とは、論理的に証明できる正しさという意味ではない。「来こうするべき」といった意味で捉えて欲しい。 「炎上」というのは、例えばテストが通らない、バ

    データベースアプリケーション開発を炎上させる負のスパイラル
  • Distribution Awareness - MySQL Clusterにおけるスキーマチューニングの定石

    MySQL Clusterはデータノードが増えると性能が低下する??? そのような噂を聞いたことがないだろうか。この噂は事実を含んでいる面もあるが、殆どの場合は適切にスキーマを設計していないことが原因で起きる。実はMySQL Clusterはその性能を遺憾なく発揮するためにはスキーマの設計が非常に大事なのである。 MySQL Clusterは複数のデータノード(ノードグループ)に対して主キーの値に基づいて行単位で分散されている。主キーに偏りがなければ各データノードに格納される行数は均等になる。つまり、MySQL ClusterはSharding(アプリケーションパーティショニング/Level2分散)を自ら行っていると言えるだろう。 MySQL Clusterでは主キーによるルックアップは、どのデータノードにデータが格納されているかが主キーから分かるため非常に高速である。逆に、主キー以外のキ

    Distribution Awareness - MySQL Clusterにおけるスキーマチューニングの定石
  • MySQL Clusterのディスクテーブルにおける注意点

    MySQL Clusterには、バージョン5.1からディスクテーブルという機能が備わっているが、コイツが少し癖のあるやつなので今日はそのポイントについてまとめてみたい。 オトコたるものたまには真面目な話もしなければならないのである。 注意点。ディスクはメモリに比べてすごく遅い。以上!! と言ってしまえばそれだけのことなのであるが、だったらなぜディスクテーブルなど使うのか?という話になってしまう。ディスクを使うのは、はディスクの方が同じ価格で購入できる容量が大きいからであって、MySQL Clusterにおけるディスクテーブルは速度を犠牲にして容量を稼ぐための手段であるといえる。残念ながら、ディスクの不揮発性により耐障害性を高めるための仕組みではないので誤解のないように注意されたい。 さて、ディスクテーブルを使うときは具体的にはどのようなシステム構成にすればいいのだろうか。以下に箇条書きで簡

    MySQL Clusterのディスクテーブルにおける注意点
  • 1