influxDB
時系列用のデータベースとして作られています。
Goで書かれており、導入に際して特に依存しているものはありません。
用途
DevOpsのためのデータ計測の格納先としての利用です。
2013年に大きく盛り上がったinfluxDBを少し遊んでみようと思い、いくつか検証してみました。
検証方法としては、
パフォーマンス比較 Cassandra、Mongodb、SQLite、H2、MySQL、Postgres - C/pHeR Memo - Java とか。Eclipse とか。
を参考に実装してみました。
検証
MySQLとinfluxDBの速度差を測ってみました。
MySQLはRDBなので、構造は違いますがどれくらい差があるのか知りたいため、やってみました。
PrimaryKeyで検索してしまうとIndexが効いてしまうので、
primarykeyを作らずに測ってみました。
1件ずつ100000件INSERT
MySQL insert time: 0:00:07.345743 influxDB insert time: 0:02:29.484344
influxDBのみ件数を変化させてINSERTしてみました。
100件毎にINSERT
influxDB insert time: 0:02:28.335241
SELECT
SELECTに関しては100000件だと終わる気配がなかったので、
10000件にして実験してみました。
データ量
実データが格納されている容量を比較してみました。
du /usr/local/var/mysql/test 9.2M . du /usr/local/var/influxdb 64K influxdb//data/shard_db_v2/00001 64K influxdb//data/shard_db_v2/00002 48K influxdb//data/shard_db_v2/00003 1.3M influxdb//data/shard_db_v2/00004 1.5M influxdb//data/shard_db_v2 1.5M influxdb//data 1.9M influxdb//logs 4.0K influxdb//raft/snapshot 16K influxdb//raft 4.0K influxdb//wal 3.4M influxdb/
コードは以下です。