1 ポイント 投稿者 GN⁺ 2025-02-08 | 1件のコメント | WhatsAppで共有
  • 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を超える大きなデータベースを使う場合、すべてのページを読むトップレベルビューの読み込みに時間がかかることがある
  • ビルド方法

    • files/の内容をredbean-3.0.0-cosmos.comzipで圧縮すればよい。https://cosmo.zip/pub/cosmos/bin/ からダウンロード可能(一覧で"redbean"をクリック)
    • システムにzipがなければ、そのサイトからダウンロードが必要
    • 同梱のzipitup.py Python(3.6+)スクリプトを実行してもよい
    • 修正するにはredbean-3.0.0-cosmos.com -D filesを実行して、filesサブディレクトリからアプリケーションを配信できる。変更のたびにzipを再ビルドする必要はない
  • 傑作ではない

    • redbeanを試し、Luaを初めて使ってみた実験の一環なので、コードはやや散らかっているかもしれない
    • Jinjaやbottle.pyのネイティブテンプレートのようなテンプレートシステムを使えば、多くの文字列連結やWrite()文を減らせる
    • 最後のタブが閉じられたときにコンソールを自動で閉じ、ユーザーが確認しない限り大きなデータベースではページ10,000で止める機能があるとよい
    • PR歓迎

1件のコメント

 
GN⁺ 2025-02-08
Hacker Newsのコメント
  • アニメーションGIFのスクリーンショットを投稿していたこのプロジェクトはとても興味深い
  • SQLiteのファイル形式ドキュメントを参考にしてSQLiteファイルをパースするコードを書くのは、思ったより簡単
  • SQLiteの内部実装に携わった経験者として、このプロジェクトの取り組みは印象的
    • Dioxusで構築されたsqlite-reprも、興味深いSQLiteの可視化を提供している
    • 関連リンク: sqlite-repr
  • このプロジェクトは素晴らしく、色の凡例を追加するとよいという意見
    • 大きなデータベース(3.6GB、942719ページ)では性能上の問題が発生し、ページネーションを検討できる
  • 10年前にセキュリティツール向けに似たような作業をしたことがあり、このプロジェクトがMITライセンスで提供されているのは良い
  • SQLiteのソースには、データベースファイルの探索に役立つCLIツール showdb が含まれている
  • 講義や授業を受けるのが難しい人にとって、このプロジェクトはデータ構造を効率的に可視化する良い方法
  • データベースを学習中の人にとって非常に有用なツール
  • SQLiteファイル形式に関する説明書と有用なダイアグラムを書いた経験がある
  • ツールはうまく動作する