雲雀は高く空を舞い このページをアンテナに追加 RSSフィード

「ひよこは高く空を舞い」について

2009-11-02

[]ちょっとめも ちょっとめも - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - ちょっとめも - 雲雀は高く空を舞い ちょっとめも - 雲雀は高く空を舞い のブックマークコメント

追記

10k(個)*30(days)*12(monthes)*2(years)のデータをdbに登録するに当たり、インサート1回ずつcommitをしていたら、5400sec(=90min)/1daydataかかっていてこれはきつい、と思っていたんだけど、1dayごとにcommitするように変えたら5sec/1daydataになった…。なんということだ…。





sqliteの書き込みが遅いな、ということでメモ。

1) commitしないで書き込めば早い (その分データベースの破壊が恐い)

2) (これは僕のプログラミングスキルの問題)データを登録する前にそのデータがdbに存在するかを select で確認するよりもunique制約をつけた方が早い

3) executemany使うとどうなのかな。

executemanyはイテレータに使える。 12.6. sqlite3 ? DB-API 2.0 interface for SQLite databases — Python 3.6.1rc1 documentation

import sqlite3

class IterChars:
    def __init__(self):
        self.count = ord('a')

    def __iter__(self):
        return self

    def next(self):
        if self.count > ord('z'):
            raise StopIteration
        self.count += 1
        return (chr(self.count - 1),) # this is a 1-tuple

con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table characters(c)")

theIter = IterChars()
cur.executemany("insert into characters(c) values (?)", theIter)

cur.execute("select c from characters")
print cur.fetchall()

4) O/R mapper使え?

ここら辺はよくわからない。ググってたら2007年の記事でSQLObjectとSQLAlchemyだったらSQLAlchemyの方がよっぽど早い、とか言う記事があったりした。O/R mapperはsqlを抽象化してオブジェクトから統一的に扱えるとかそう言う感じなのかしら。チューニングとか何とかいろいろな部分はmapper層にお任せしちゃうとかなのかなー(よくわかってない)

[] 2009-11-02 - 雲雀は高く空を舞い を含むブックマーク 2009-11-02 - 雲雀は高く空を舞い のブックマークコメント

「あわせて読みたい」導入して、まだ安定してないからかいろいろなページが表示されてておもしろいんだけど、昔よく読ませていただいていた「やねしん」さんのblogが表示されててびっくり。といっても犬りんくからこっそり読んでるだけでコメントつけるだなんてとんでもないて感じだったのでこっちが一方的に読んでいるだけだったんだけど。キディグレイドとかやってた頃だよなーあのころ犬リンク界隈のブログ/テキストサイトよく巡回してたっけとか思ったら、いままたキディグレイドの続編(?)がやってるんだとか。後で見てみよう。

no title

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091102
テクノラティプロフィール