元気な病人のブログ

元気な病人のブログ

PR

バックナンバー

2025.12
2025.11
2025.10
2025.09
2025.08
2025.07
2025.06
2025.05
2025.04
2025.03
2008.10.01
XML
カテゴリ: DB
日記を書こうと思っても書くことがないので,
データベース(DB)について,メモがてら書いてみる.

研究の関係で今日からデータベース(DB)をさわり始めた.
とりあえず,適当に大きいデータを入れてみて検索してみた.

テーブルを作るにあたってストレージエンジンを選ぶ必要がある.
今までまったく DB をさわったことがなかったので
ストレージエンジンの存在すら知らなかったが,
MyISAM か InnoDB を使うのが普通らしい.
それぞれについて調べてみたところ,

というか,わざわざ InnoDB にする理由が無さそう.
でも一応両方作ってみてテーブルサイズと検索速度を簡単に比較してみた.

テーブルに入れるデータは
141 (B) × 2600000 (record) ≒ 367 MB,
実験に用いるデータ 1 年分相当.
データ形式は実際に用いるものと同じにして,
適当な CSV ファイルを作って,そこから読み込んで入れた.

まず,テーブルを作る速度が InnoDB が 3 倍ほど遅い.
まあこれ自体は実際に使用する分にはさほど問題は無いが.

次にデータのサイズ.
上記のサイズからどれだけ大きくなっているか調べてみると,

InnoDB : 465.567744(MB)
InnoDB は MyISAM の約 1.23 倍.InnoDB は想像以上にでかかった.
ちなみに 1 レコードあたりのサイズは
MyISAM : 146(B)
InnoDB : 179(B)

MyISAM : 2600000
InnoDB : 2600113
1 レコードあたりのサイズが増えるのは当然だろうけど,
なぜレコード数まで増える???
無知な自分にはまったくわからない.

最後に検索速度について.
かなり簡単な似たようなクエリを 3,4 個用意してそれぞれのテーブルに対して投げ,
そのとき表示される時間を見ただけの簡単な実験.
結果はどのクエリでも InnoDB が MyISAM より 4 倍前後遅かった.
実験 1 回分に用いるであろうデータを引っ張ってくるのに
MyISAM が 1 秒弱,InnoDB が 3 秒半ばくらいだった.
MyISAM でも 1 秒近くかかるのか.
実際のデータは 3 年分弱くらいあるから
テーブルが大きくなって速度も少し遅くなるかもしれない.
それも試してみないと.
ただ,このテーブルは,
今回作るテーブルの中で最大と思われるサイズよりも大きめに設定してあるので,
実際にはテーブルもあまり大きくならず,
そんなに速度は変わらないと予想してみる.

両者の比較について,この結果だけで評価を下すのは良くないけど,
実際に使うときは簡単なクエリで,ある範囲のデータを参照する,
というような使い方しかしないだろうから,
この結果はけっこう重要そう.
まあ,繰り返し実験でまったく同じクエリを何度も使う場合は,
クエリキャッシュとかいうもののおかげで 2 回目以降は一瞬で終わるから,
MyISAM と InnoDB に差はなくなるみたいだけど・・・

ということで今回の結果から,
おそらく MyISAM を使うことになりそう.
InnoDB は mixi などでも使われているらしく,
実際に MyISAM より多く用いられているみたい(たぶん)なので,
使ってみようかと思ったんだけど,まあ仕方ないか.
いつか自宅で使ってみることにしよう.





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2008.10.02 00:45:42
コメント(0) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

カレンダー

プロフィール

マットソン

マットソン

キーワードサーチ

▼キーワード検索

コメント新着

gonbe_vip @ 年取ると・・・ 時間の流れが、年々速くなるでぇ~~~w …
マットソン @ Re:(*・`o´・*)ホ―(01/30) gonbe_vipさん ゴルフは長く楽しめるんで…
gonbe_vip @ (*・`o´・*)ホ― 中古で6万弱・・・  6万あったら、権汰と沖…
マットソン @ Re:ぉけまして、ぉめでとぅさん♪(01/03) フライング・・・そんなこともありました…
gonbe_vip @ ぉけまして、ぉめでとぅさん♪ 今年も、ココで挨拶できてヨカッタなり~(*´∀`*)…
gonbe_vip @ ォォオオー!!ヽ(゚д゚ヽ)(ノ゚д゚)ノ オオォォー!! 社会人になったんやぁああああああああ!…

© Rakuten Group, Inc.
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: