HN em destaque: Explorador de páginas em disco do SQLite
(github.com/QuadrupleA)-
SQLite Page Explorer
-
O SQLite Page Explorer é um pequeno aplicativo com GUI desenvolvido com redbean que permite explorar um banco de dados SQLite da forma como o SQLite o enxerga, ou seja, "página por página"
-
Por que isso é necessário?
- O SQLite e a maioria dos bancos de dados armazenam dados em páginas do tamanho de blocos de disco (geralmente 4 KB) para maximizar a velocidade de leitura e escrita
- Em geral, desenvolvedores interagem com o banco de dados no "nível de esquema", mas observar o "nível de página" pode trazer insights interessantes, como:
- Ver como os índices realmente aparecem no disco (basicamente, são pequenas tabelas separadas)
- Tornar consultas e aplicações mais rápidas ao armazenar dados de forma mais compacta
- Encontrar problemas e ineficiências que não aparecem no nível de esquema
- Ganhar intuição sobre estruturas de dados importantes, como B-trees, que são a base da maioria dos sistemas de arquivos e bancos de dados
-
Pode ser executado em qualquer lugar
- Graças ao redbean, cosmopolitan e αcτµαlly pδrταblε εxεcµταblε, trata-se de um único executável de 6,5 MB que roda nativamente em Windows, Linux, macOS, vários BSDs, ARM64 e x64
- Esse arquivo é um arquivo zip que inclui o aplicativo e o código Lua que faz o parsing do formato binário do banco de dados
-
Como instalar
- Baixe
sqlite-page-explorer.comem releases - Em sistemas Unix, execute
chmod +x - Arraste o arquivo do banco de dados ou execute no console:
sqlite-page-explorer.com mySqliteDatabase.db - O aplicativo será aberto em uma aba do navegador
- Ao terminar, pressione Ctrl-C duas vezes no console
- αcτµαlly pδrταblε εxεcµταblεs podem confundir os sistemas de detecção de vírus do navegador e do sistema operacional, gerando falsos positivos. Tenha o cuidado habitual com tudo o que baixar da internet
- Ao usar bancos de dados grandes, com mais de 500 MB, pode levar algum tempo para carregar a visualização de nível superior que lê todas as páginas
- Baixe
-
Como compilar
- Basta compactar o conteúdo de
files/comzipdentro deredbean-3.0.0-cosmos.com. É possível baixá-lo em https://cosmo.zip/pub/cosmos/bin/ (clique em "redbean" na lista) - Se o sistema não tiver
zip, será necessário baixá-lo nesse site - Também é possível executar o script Python (3.6+) incluído
zipitup.py - Para modificar, execute
redbean-3.0.0-cosmos.com -D filespara servir o aplicativo a partir do subdiretóriofiles. Assim, não é preciso recompilar o zip a cada alteração
- Basta compactar o conteúdo de
-
Não é nenhuma obra-prima
- Como parte de um experimento para testar o redbean e usar Lua pela primeira vez, o código pode estar um pouco bagunçado
- Se usasse um sistema de templates como Jinja ou os templates nativos do bottle.py, seria possível reduzir bastante a concatenação de strings e as chamadas a Write()
- Seria bom fechar automaticamente o console quando a última aba fosse encerrada e, no caso de bancos de dados grandes, parar na página 10.000 a menos que o usuário confirme que deseja continuar
- PRs são bem-vindos
1 comentários
Comentários do Hacker News