- SQLite Page Explorer는 SQLite 데이터베이스를 SQLite가 보는 방식대로 디스크 페이지 단위로 탐색할 수 있는 작은 GUI 애플리케이션임
- 개발자가 보통 다루는 테이블·행·SQL 같은 스키마 수준이 아니라 페이지 수준을 보여줘, 인덱스의 실제 디스크 구조와 저장 효율을 살펴볼 수 있음
- redbean, cosmopolitan, αcτµαlly pδrταblε εxεcµταblε를 사용해 6.5MB 단일 실행 파일로 Windows, Linux, MacOS, 여러 BSD, ARM64와 x64에서 네이티브 실행됨
- 실행 파일은 Lua 코드와 데이터베이스 바이너리 포맷 파서 등을 담은 zip 파일이기도 하며, 데이터베이스 파일을 드래그하거나 콘솔에서 실행하면 브라우저 탭으로 앱이 열림
- APE 방식 실행 파일은 브라우저나 운영체제 바이러스 탐지에서 오탐을 만들 수 있고, 500MB 이상 대형 데이터베이스는 최상위 뷰 로딩이 느릴 가능성이 있음
SQLite 페이지를 직접 보는 GUI
- SQLite Page Explorer는 SQLite 데이터베이스를 “page by page”로 탐색하는 작은 GUI 애플리케이션임
- SQLite와 대부분의 데이터베이스는 보통 4KB 크기의 디스크 블록 페이지에 데이터를 저장하며, 이는 읽기와 쓰기를 빠르게 하기 위한 구조임
- 일반적인 개발자 작업은 테이블, 행, SQL 같은 스키마 수준에서 이루어지지만, 이 도구는 SQLite가 보는 페이지 수준을 들여다보게 함
페이지 수준 탐색으로 볼 수 있는 것
- 인덱스가 디스크에서 실제로 어떤 모습인지 확인할 수 있음
- 인덱스는 기본적으로 별도의 작은 테이블처럼 저장됨
- 데이터를 더 컴팩트하게 저장하는 방법을 살펴볼 수 있고, 쿼리와 애플리케이션을 더 빠르게 만드는 데 연결될 수 있음
- 스키마 수준에서는 보이지 않을 수 있는 문제와 비효율을 찾는 데 도움이 됨
- 파일시스템과 데이터베이스의 기반이 되는 중요한 자료구조인 B-Tree에 대한 직관을 얻을 수 있음
단일 실행 파일로 어디서나 실행
- redbean, cosmopolitan, αcτµαlly pδrταblε εxεcµταblε를 사용해 단일 6.5MB 실행 파일로 배포됨
- Windows, Linux, MacOS, 여러 BSD에서 실행되며, ARM64와 x64를 모두 지원함
- 실행 파일은 앱을 구동하는 Lua 코드, 데이터베이스 바이너리 포맷 파서 등을 포함한 zip 파일이기도 함
설치와 실행 방식
- 릴리스 페이지에서
sqlite-page-explorer.com을 다운로드함 - Unix 계열에서는
chmod +x를 실행함 - 데이터베이스 파일을 실행 파일에 드래그하거나 콘솔에서 다음처럼 실행함
sqlite-page-explorer.com mySqliteDatabase.db
- 앱은 브라우저 탭에서 열림
- 사용을 마치면 콘솔에서 Ctrl-C를 두 번 누름
주의점과 개발 방식
- APE 실행 파일은 브라우저나 운영체제 바이러스 탐지에서 오탐을 만들 수 있음
- llamafile 같은 프로젝트도 같은 폴리글롯 바이너리 기법을 사용함
- 인터넷에서 내려받는 파일에는 일반적인 주의가 필요함
- 500MB 이상 큰 데이터베이스를 넣으면 모든 페이지를 읽는 최상위 뷰 로딩이 느릴 가능성이 있음
- 빌드는
files/내용을redbean-3.0.0-cosmos.com에 zip으로 넣는 방식임- 포함된
zipitup.pyPython 3.6+ 스크립트로도 빌드할 수 있음
- 포함된
- 개발 중에는
redbean-3.0.0-cosmos.com -D files로files하위 디렉터리에서 앱을 서빙해 매번 zip을 다시 만들지 않아도 됨 - 프로젝트는 redbean 실험과 첫 Lua 사용의 일부였으며, 코드가 더 정리될 여지가 있음
- 템플릿 시스템이 문자열 연결과
Write()호출을 줄이는 데 도움이 될 수 있음 - 마지막 탭이 닫히면 콘솔을 자동 종료하거나, 거대 데이터베이스에서 사용자 확인 전 10,000페이지쯤에서 멈추는 개선 아이디어가 있음
- PR을 환영함
- 템플릿 시스템이 문자열 연결과