HN公開: SQLiteディスクページエクスプローラー
(github.com/QuadrupleA)-
SQLite Page Explorer
-
SQLite Page Explorerはredbeanで開発された小さなGUIアプリケーションで、SQLiteデータベースをSQLiteが見ているのと同じように「ページ単位」で探索できるツール
-
なぜ必要か?
- SQLiteおよびほとんどのデータベースは、読み書きを可能な限り高速化するために、ディスクブロックサイズのページ(通常は4KB)にデータを保存する
- 一般に開発者は「スキーマレベル」でデータベースとやり取りするが、「ページレベル」を見ると次のような興味深い洞察が得られる
- インデックスが実際にディスク上でどのように見えるかを確認できる(基本的には別個の小さなテーブル)
- データをより圧縮して保存することで、クエリやアプリケーションをより高速にできる
- スキーマレベルでは見えない問題点や非効率を発見できる
- ほとんどのファイルシステムやデータベースの基礎となるBツリーのような重要なデータ構造への直感を得られる
-
どこでも実行可能
- redbean、cosmopolitan、αcτµαlly pδrταblε εxεcµταblεのおかげで、Windows、Linux、MacOS、各種BSD、ARM64、x64でネイティブ動作する単一の6.5 MB実行ファイル
- このファイルは、アプリケーションを実行し、データベースのバイナリ形式をパースするLuaコードを含むzipファイル
-
インストール方法
- releasesから
sqlite-page-explorer.comをダウンロード - Unix系では
chmod +xを実行 - データベースファイルをドラッグするか、コンソールで実行:
sqlite-page-explorer.com mySqliteDatabase.db - アプリケーションはブラウザのタブで開く
- 終了後はコンソールでCtrl-Cを2回押す
- αcτµαlly pδrταblε εxεcµταblεsは、ブラウザやOSのウイルス検出システムを混乱させ、誤検知を引き起こす可能性がある。インターネットからダウンロードしたあらゆるものに対して、通常どおり注意を払うこと
- 500 MBを超える大きなデータベースを使う場合、すべてのページを読むトップレベルビューの読み込みに時間がかかることがある
- releasesから
-
ビルド方法
files/の内容をredbean-3.0.0-cosmos.comにzipで圧縮すればよい。https://cosmo.zip/pub/cosmos/bin/ からダウンロード可能(一覧で"redbean"をクリック)- システムに
zipがなければ、そのサイトからダウンロードが必要 - 同梱の
zipitup.pyPython(3.6+)スクリプトを実行してもよい - 修正するには
redbean-3.0.0-cosmos.com -D filesを実行して、filesサブディレクトリからアプリケーションを配信できる。変更のたびにzipを再ビルドする必要はない
-
傑作ではない
- redbeanを試し、Luaを初めて使ってみた実験の一環なので、コードはやや散らかっているかもしれない
- Jinjaやbottle.pyのネイティブテンプレートのようなテンプレートシステムを使えば、多くの文字列連結やWrite()文を減らせる
- 最後のタブが閉じられたときにコンソールを自動で閉じ、ユーザーが確認しない限り大きなデータベースではページ10,000で止める機能があるとよい
- PR歓迎
1件のコメント
Hacker Newsのコメント
showdbが含まれている