空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

メモ帳

  • テキストファイル
  • 独自のバイナリフォーマット
  • XML

と,自分のアイデア・メモ帳ソフトのデータ形式は,時代(気分?)とともに変遷を遂げてきたが,今週末,それらを SQLite に移行した。SQLite というのは,PDS なファイルベースのデータベースエンジン。データ形式の拡張の容易さ,検索性能の向上を期待しての移行である。

ドライバは sqlite3-ruby を使用。

% sudo gem install sqlite3-ruby

でインストールした。Database#transaction でトランザクションを開始した後,別関数を呼び出し,その中でテーブルをいじろうとすると,テーブルがロックされているとの旨のエラーが出る。なぞ。コンテキスト・フレームが変わると何か問題があるのだろうか。あと,Database#execute のブロック内で,さらに SQL を発行してデータベースを更新しようとすると,同様のエラーが出る。C の APIトランザクション管理は,ドキュメントを読んだ限りでは,もう少し融通がきく気がするんだけどな。

ベンチマークのページには「MySQL よりも高速」とあるが,小さなコマンドを発行し,こまめにテーブルを更新するような用途だと,初期化の差だろうか,MySQL の方がレスポンスが良いということもわかった。しかし,それを差し引いても,サーバーも要らず,ファイルベースで扱いやすいという利点は大きい。

気軽に使える軽量のデータベースエンジンが public domain software で公開され,更にそれを気軽に使うための Ruby インターフェースも提供されている。便利な世の中になったものである。