HN 공개: SQLite 디스크 페이지 탐색기

1 month ago 7

  • 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를 두 번 누름
    • αcτµαlly pδrταblε εxεcµταblεs는 브라우저와 운영 체제의 바이러스 탐지 시스템을 혼란시켜 오탐을 발생시킬 수 있음. 인터넷에서 다운로드한 모든 것에 대해 일반적인 주의를 기울일 것
    • 500 MB 이상의 큰 데이터베이스를 사용할 경우, 모든 페이지를 읽는 최상위 뷰를 로드하는 데 시간이 걸릴 수 있음
  • 빌드 방법

    • files/의 내용을 redbean-3.0.0-cosmos.com에 zip으로 압축하면 됨. https://cosmo.zip/pub/cosmos/bin/에서 다운로드 가능 (목록에서 "redbean" 클릭)
    • 시스템에 zip이 없으면 해당 사이트에서 다운로드 필요
    • 포함된 zipitup.py 파이썬(3.6+) 스크립트를 실행해도 됨
    • 수정하려면 redbean-3.0.0-cosmos.com -D files를 실행하여 files 하위 디렉토리에서 애플리케이션을 제공할 수 있음. 변경 시마다 zip을 다시 빌드할 필요 없음
  • 걸작은 아님

    • redbean을 시도해보고 Lua를 처음 사용해본 실험의 일환으로, 코드가 다소 어수선할 수 있음
    • Jinja나 bottle.py의 네이티브 템플릿과 같은 템플릿 시스템을 사용하면 많은 문자열 연결과 Write() 문을 줄일 수 있음
    • 마지막 탭이 닫힐 때 콘솔을 자동으로 닫고, 사용자가 확인하지 않는 한 큰 데이터베이스의 경우 페이지 10,000에서 멈추는 기능이 있으면 좋을 것임
    • PR 환영

Read Entire Article