メモ帳
- テキストファイル
- 独自のバイナリフォーマット
- XML
と,自分のアイデア・メモ帳ソフトのデータ形式は,時代(気分?)とともに変遷を遂げてきたが,今週末,それらを SQLite に移行した。SQLite というのは,PDS なファイルベースのデータベースエンジン。データ形式の拡張の容易さ,検索性能の向上を期待しての移行である。
ドライバは sqlite3-ruby を使用。
% sudo gem install sqlite3-ruby
でインストールした。Database#transaction でトランザクションを開始した後,別関数を呼び出し,その中でテーブルをいじろうとすると,テーブルがロックされているとの旨のエラーが出る。なぞ。コンテキスト・フレームが変わると何か問題があるのだろうか。あと,Database#execute のブロック内で,さらに SQL を発行してデータベースを更新しようとすると,同様のエラーが出る。C の API のトランザクション管理は,ドキュメントを読んだ限りでは,もう少し融通がきく気がするんだけどな。
ベンチマークのページには「MySQL よりも高速」とあるが,小さなコマンドを発行し,こまめにテーブルを更新するような用途だと,初期化の差だろうか,MySQL の方がレスポンスが良いということもわかった。しかし,それを差し引いても,サーバーも要らず,ファイルベースで扱いやすいという利点は大きい。
気軽に使える軽量のデータベースエンジンが public domain software で公開され,更にそれを気軽に使うための Ruby インターフェースも提供されている。便利な世の中になったものである。