ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

手作りネットプロトコル工房コミュのDERBY→H2

  • mixiチェック
  • このエントリーをはてなブックマークに追加
PureJava で書かれた組み込み可能・フリーで利用できるデータベースにDERBYというものがある。
僕はこのDERBYをはじめてみたときものすごく興奮した。 精度が非常に高くてしかも小さかった。
僕は気に入ってこのデータベースをいじり倒し始めた。

だけど、いじればいじるほどわかってきたのが、このDERBYがすごく遅いということだった。 これはとても残念だった。 データベースファイルのフォーマットが非常に悪いらしい。 ファイル数がとても多く、これらに分散してデータを格納しているらしかった。 インデックスを作成してもあまり速くならないうえ、インデックスを作成すると挿入が目にみえて遅くなる。 今までいろいろチューニングして来たけど限界が低いらしいこともだんだんわかってきた。

それで 探していたら、最近は H2というPureJavaのデータベースがあるらしい。

http://www.h2database.com/html/performance.html

これをみると非常に成績がよい。 あちこちの掲示板で見る限り評判も非常によい。 その上、設計者はJAVAでのデータベース開発のスペシャリストらしく、何度もスクラッチからコードを書いているらしい。 この人はすごい人っぽい。


コメント(8)

>データベース開始・接続・検索・切断・データベース終了をすべて、0.001秒以内に終了させるDBなんてみたことがない。

自分もこのレベルのスピードは見たことにゃい。
>メモリ上にマップされたテーブルとファイル上にマップされたテーブルと、動的に切り替えられるらしいんだよ。 メモリ上にマップされたテーブルしか使わないと、本当にこのレベルの速度で動作するよ。

>メモリ上にマップされていても、DURABILITY を持たせること、持たせないことが任意で選択できるようになっていて、実によくできたデータベースだと思ったよ。

他のデーターベースってこのあたりを制御しにくいんだよなぁ。
使うメモリの使用量をコントロールすることはできるデータベースは多いけど。

Physical Data Independenceの思想では、ユーザは実際のデータ納形式をまったく気にせずにデータにアクセスできることが正しいと考えられているけど、実際には思い通りの方法で、実データを読んでくれなくて、苦労させられることって結構ある。

余分なSortがかかったり、データをメモリに読んできて確実な再利用ができなかったり、、、

Index Keyを利用して読み込み時にSortがかからないようにするのが、スピードをだす主要なこつの一つだと思っていたのだけど、今は、読み込み時にはメモリデータベースとして利用したいなぁ。
メモリも大きくなったし。1億レコードとかあれば無理だけど。。。

DBを酷使すれば、究極的にはファイルへの書き込みスピードがボトルネックになって行くと思う。
利用状況により例外も多々あるし、コンピュータのアーキテクチャも変わっていくものだけど。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

手作りネットプロトコル工房 更新情報

手作りネットプロトコル工房のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング