mysql(innodbもしくはmyisam)でログデータ(最大1000件/秒)を処理したいのですが、load dataやbulkinsertなどを使っても1秒間に100件程度が限界です。ログデータのような大量の時系列データを処理する目的にmysqlがあっていないんでしょうか。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/05/03 12:05:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント35pt

どのような処理をされているのか分からないのですが、一般論として、RDBMSが威力を発揮するのは、互いに関連のある正規化された複数のデータ群に対して検索・参照が多いような処理です。

ログファイルのように、単一方向(時間軸)かつ正規化されていない生のデータ群に対しては、ファイルをそのまま処理した方が効率が良いはずです。

また、単なる集計処理だけでない統計処理を目指すのであれば、SAPとまではいかないにしても、Rを使ってみてはいかがでしょうか。

id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント35pt

合っていない。というかその目的には RDBMS を含む DBMS 全般が適していないと思う。

DBMS の基本はどちらかというと蓄積したデータの検索・集計、データの一貫性等に重きが置かれる。

それらの機能はログの蓄積時点では足かせにしかならない。


いったん text にログを落としておき、それをロードして集計に使うというのならわからなくも無い。

一応 MySQL 自体のパフォーマンスチューニングのほか、

INSERT DELAYED ...

構文もあるのでやろうと思えば出来なくも無いはずですが厳しいかな。

MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.4.3.2 INSERT DELAYED 構文

id:ken33jp No.3

回答回数928ベストアンサー獲得回数13

ポイント10pt

>(最大1000件/秒)

リアルタイムでは無理。

>1秒間に100件程度

この程度は可能ということで、分散処理を導入するしかない。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません