sqlite

また下らぬものを作ってしまった。

で、AccessからSQLite3をODBCで除くようにテーブルリンクを張って、Railsでマクロ指定をつけて.mdbを引っぱたいて、打ち込んだデータを整形印刷させる仕組みを作り上げる。 しかしAccessというのもアレだよなぁ。Web系で使うレポートツールってなにがあるん…

Magic Multi-Connectionsで複数のSQLite3ファイルを意識的に使う。

Magic Multi-Connectionsという分散DB対応ライブラリがあることをいまごろ知ったので簡単に試してみる。 とても分かりやすい記事があったので使わせていただきます。 想定として、Userモデル、UserInfoモデルがあり、 Userはメインデータベースで管理する。 …

SQLite3で大量データ+複雑なVIEWをCOUNT(*)すると固まる(ほど遅い)

大量データ(100万件以上)を使ったときのメモ。 SQLite3は、データをフェッチする前の「select count(*)」が遅いみたい。 例えば、複雑なVIEWを多段に組んだ結果をテンポラリテーブルに入れるとき、先に件数が欲しいからと CREATE TEMP TABLE FIND_COUNT AS…

SQLite3と鬼車で正規表現検索 + sqlite3-ruby-1.2.1パッチ当て

力尽きたりバタバタしてたりで放っておいたマトメを。

ubuntuでSQLite3をビルドする:大はまり

Macと同じ手順でできない。なぜだ。なぜlibdlをリンクしてくれないのだ。 あきらめて、configureで出来たMakefileの sqlite3$(TEXE) ...部分に「-ldl」を手で加えて、sudo make; sudo make install した。ナットクいかない。というかこんな時間までなにやっ…

sqlite3-rubyで、Cの拡張ライブラリをSQLite3に組み込む(メモ)

結論:できました。OSX上でビルドして確認。 効果:極めてグゥ。正規表現で試した(Railsで12万件の住所に"東京.*(東|西|南|北)"して25件のpaginate処理)。 Rubyで10.5秒。 PCREを使った拡張ライブラリで0.39秒。約27倍。 概要:enable_load_extension(), l…

sqlite3-ruby1.2.1にsqlite3_load_extension()がない!

あれこれ見ていて気がついた。現状では、C言語で正規表現処理を書いてもRubyからSQLiteに組み込めない、ってことかな。sqlite3-ruby経由だと".load"も"select load_extencion()"もエラーになるわけで。 よって選択肢は2つ。 SQLite3に正規表現処理を埋め込…

.loadが動かない。

SQLite3で正規表現を高速動作させよう。ということで、PCREを拡張ライブラリとして組み込むことにする。 SQLite3.3.13を取ってきてOSXでビルド。 $ env CFLAGS="-DHAVE_DLOPEN" ./configure --enable-threadsafe --disable-tcl --prefix=/opt/local $ make $…

Ruby,RailsからSQLiteの正規表現検索(REGEXP)を使う。

かなーり探したつもりなのだけれど方法が見つからず。はやく公式実装されないかなぁ・・・ とりあえずRubyでREGEXP関数を作ってRailsで使うの巻。ちょー遅いけど動くのでOK。 準備 ApplicationControllerにREGEXP機能を差し込むコードを書く。 class Applica…