タグ

ブックマーク / www.randynetwork.com (2)

  • SQLite での ロック - 元祖 サトシのブログ

    あるプロセスが データを書き換え中に、他のプロセスが書き換えできないようになっているようだ。 仕組みとしては、トランザクション中に、他のプロセスがトランザクションを開始しようとすると、SQLITE_BUSY ってのが返ってくる。 APIsqlite_busy_timeout() を使って、SQLITE_BUSY になるまでの時間をミリ秒で指定できる。 トランザクションの開始だけでなく、DELETE, INSERT, UPDATEなども出来ないようになっている。 pysqlite を使って実験(Python) 別のプロセスでトランザクション状態にしておく。(例: sqlite コマンドを使って、BEGIN; を実行しておく) 以下の Python スクリプトを実行する。タイムアウトは10秒(10000ミリ秒) import sqlite con = sqlite.connect("te

  • SQLite の INSERT は遅いのか? - 元祖 サトシのブログ

    MySQLSQLite(PrinCo.)という記事経由で、生まれ変わるPHP - Zend Engine 2、SQLiteの実力は?(MYCOM PC WEB)という記事を読んだ。 MySQLSQLite で INSERT 時の処理速度が公開されている。 1000件のレコードのINSERTを実行し、それぞれにどれぐらいの時間がかかっているかを示しているのだ。 MySQLが 0.4秒、SQLite が 16秒だというのだが、これはあまりにもひどすぎる。しかも、結論としてどうやら大量データの連続挿入はSQLiteの不得意な処理のようだ。と書かれている。1000件程度でこんなにかかるんだったら、10000件だったら160秒ぐらいかかる(単純すぎ。)って事? 実はこれにはからくりがあって、SQLite の処理は トランザクション の中でないと著しく遅いのだ。おそらく、これが原因なのではない

    iww
    iww 2007/09/27
  • 1