sqliteによるデータ書き込み

More than 1 year has passed since last update.

普通にファイル保存するよりも小さいBLOBに限ってはDBにぶっ込んだ方が早いそうな。

排他とか色々あるから遅いと思ってたのですが、、、、、

それだけ性能上がってるなら普通のテーブルも高速に保存できるのか?

と思ったので検証


環境


  • mac(結構前)

  • go言語

  • SQLite version 3.16.0 2

でsqlite3 VS json VS csv による出力でどれが早いかやってみますか。

jsonはその配列をデコードで出力するだけ、他は1レコード毎にする。

これでcsvより早ければそれはそれで価値があるってことね。

とりあえずsqlite3の勝利で終われば非常に楽だなぁ。


条件


  • テーブルは以下にする


    1. ID(int)

    2. Title(string)

    3. value(int)



  • 1000件のレコード書き込みを10セット実施する。


結果

DB追加
CSV
json

1.028847秒
0.004198秒
0.005193秒

0.882089秒
0.003451秒
0.000538秒

0.753490秒
0.002792秒
0.000565秒

0.781892秒
0.003049秒
0.000592秒

0.785775秒
0.006175秒
0.000909秒

0.709185秒
0.002781秒
0.000600秒

0.696319秒
0.003531秒
0.000613秒

1.247061秒
0.003052秒
0.000569秒

0.774548秒
0.002544秒
0.000595秒

0.977571秒
0.002651秒
0.000593秒

予想通り、やはり特定条件だけですね。

なんとなくDBの性能による副産物な感じがします。

セミオープン状態になってるとでもいいますかね。

そして、この際NoSQLでも試してみますかね。