[衝撃] mongo redis ローカルでさくっとたてるデータベースとして、何千万、億単位、数Gのデータのデータがもっともカンタンで神速だったのは。。。
Redis 最短入門(1)2行でインストール&起動
Redis 最短入門(2)5分でAPI
Redis 最短入門(3)Pythonでも5分でAPI
Mongodb 最短入門(1)EC2にインストール&起動&いきなり数万件入れてみた
Mongodb 最短入門(2)数万件いれて探してみた
Mongodb 最短入門(3)数百万件でも速くしてみた
SQLiteにpythonで数億行いれてみた
改め、もっとカンタンに億単位を秒殺で入れる方法をみつけた。(サーバースペックにもよるけど)
ジャカジャーン!最速なのは
SQLite3
であったあるよ。。
1000万件のCSVを持ってきた~
カンマ区切りで1行目はカラム名あるよ~
解凍する~
gunzip honyarara.csv.gz
1行目を抜く
sed -e '1,1d' honyarara.csv
sqlite3 に CSVをインポートする
sqlite3 /path/to/mydb.db
sqlite> create table hogagaga (id integer,name text);
sqlite> .separator ,
sqlite> .import honyarara.csv hogagaga
ほげっ?
早っ!あまりに速くてselect count(*) したけどほんとうだった。
cgi-bin/sqlite.py
import cgi
import sqlite3
print "Content-type: text/html\n"
conn = sqlite3.connect("/path/to/mydb.db")
csr = conn.cursor()
csr.execute('select * from hogagaga' )
pagesize=100
for x in csr.fetchmany(pagesize):
items.append(dict(zip(('id','name'), x)))
if len(items):
print json.dumps({"items":items})
はい、サーバー起動 ッターン!
python -m CGIHTTPServer &
JSON返してもらう ッターン!
ほぎゃ!速い
しかもすべて組み込み。ほとんどの環境ではインストールすら不要のこのコンビ(python + sqlite3)。