sqliteが重いときはインデックス作りましょう

前回、約定履歴1ヶ月分の3000万データが、取得が重すぎてうーんって感じだったんですが

https://usagimonkey.hatenablog.com/entry/2019/07/28/125956

 

なんかインデックスというやつを作れという話らしいですね。

sqlite> create index dateindex on data(date);
Run Time: real 80.178 user 27.953125 sys 16.234375

つくった。2分くらい。

 

sqlite> select count(id) from data where date between '2019-06-26' and '2019-06-27';
620143
Run Time: real 0.088 user 0.046875 sys 0.031250

爆速化しました。優勝です。

Ruby での取得も8秒くらいになった。