1 puntos por GN⁺ 2025-02-08 | 1 comentarios | Compartir por WhatsApp
  • SQLite Page Explorer

  • SQLite Page Explorer es una pequeña aplicación GUI desarrollada con redbean que permite explorar una base de datos SQLite de la forma en que SQLite la ve: "página por página"

  • ¿Por qué es necesario?

    • SQLite y la mayoría de las bases de datos almacenan los datos en páginas del tamaño de bloques de disco (normalmente 4 KB) para hacer que la lectura y la escritura sean lo más rápidas posible
    • Normalmente los desarrolladores interactúan con la base de datos en el "nivel de esquema", pero observar el "nivel de página" puede dar las siguientes ideas interesantes
      • Permite ver cómo se ven realmente los índices en disco (básicamente son pequeñas tablas separadas)
      • Se pueden hacer más rápidas las consultas y las aplicaciones almacenando los datos de forma más compacta
      • Se pueden descubrir problemas e ineficiencias que no son visibles en el nivel de esquema
      • Se puede desarrollar intuición sobre estructuras de datos importantes como los árboles B, que son la base de la mayoría de los sistemas de archivos y bases de datos
  • Se puede ejecutar en cualquier lugar

    • Gracias a redbean, cosmopolitan y αcτµαlly pδrταblε εxεcµταblε, es un único ejecutable de 6.5 MB que corre de forma nativa en Windows, Linux, MacOS, varios BSD, ARM64 y x64
    • Este archivo es un archivo zip que incluye la aplicación y el código Lua que analiza el formato binario de la base de datos
  • Cómo instalarlo

    • Descargar sqlite-page-explorer.com desde releases
    • En sistemas tipo Unix, ejecutar chmod +x
    • Arrastrar el archivo de la base de datos o ejecutarlo desde la consola: sqlite-page-explorer.com mySqliteDatabase.db
    • La aplicación se abre en una pestaña del navegador
    • Al terminar, presionar Ctrl-C dos veces en la consola
    • αcτµαlly pδrταblε εxεcµταblεs puede confundir los sistemas de detección de virus del navegador y del sistema operativo y provocar falsos positivos. Toma las precauciones habituales con cualquier cosa que descargues de internet
    • Si se usan bases de datos grandes de más de 500 MB, puede tardar en cargar la vista de nivel superior que lee todas las páginas
  • Cómo compilarlo

    • Basta con comprimir el contenido de files/ como zip dentro de redbean-3.0.0-cosmos.com. Se puede descargar desde https://cosmo.zip/pub/cosmos/bin/ (haz clic en "redbean" en la lista)
    • Si tu sistema no tiene zip, también hay que descargarlo desde ese sitio
    • También se puede ejecutar el script de Python (3.6+) incluido zipitup.py
    • Para modificarlo, se puede ejecutar redbean-3.0.0-cosmos.com -D files para servir la aplicación desde el subdirectorio files. No hace falta volver a compilar el zip cada vez que haya cambios
  • No es una obra maestra

    • Como parte de un experimento para probar redbean y usar Lua por primera vez, el código puede estar algo desordenado
    • Usar un sistema de plantillas como Jinja o las plantillas nativas de bottle.py podría reducir muchas concatenaciones de cadenas y sentencias Write()
    • Sería bueno que cerrara automáticamente la consola cuando se cierre la última pestaña, y que en bases de datos grandes se detuviera en la página 10,000 a menos que el usuario lo confirme
    • PR bienvenidos

1 comentarios

 
GN⁺ 2025-02-08
Comentarios de Hacker News
  • El proyecto que publicó capturas de pantalla animadas en GIF es muy interesante
  • Es más fácil de lo que parece escribir código para parsear archivos de SQLite consultando la documentación del formato de archivo de SQLite
  • Como alguien con experiencia trabajando internamente con SQLite, el trabajo de este proyecto resulta impresionante
    • sqlite-repr, construido con Dioxus, también ofrece una visualización interesante de SQLite
    • Enlace relacionado: sqlite-repr
  • El proyecto está genial, y opinan que sería bueno agregar una leyenda de colores
    • En bases de datos grandes (3.6GB, 942719 páginas) hay problemas de rendimiento, y podría considerarse la paginación
  • Hace 10 años hicieron algo parecido para una herramienta de seguridad, y les gusta que este proyecto se ofrezca bajo licencia MIT
  • El código fuente de SQLite incluye la herramienta CLI showdb, útil para explorar archivos de base de datos
  • Para quienes tienen dificultades para seguir conferencias o clases, este proyecto es una buena manera de visualizar estructuras de datos de forma eficiente
  • Es una herramienta muy útil para quienes están aprendiendo sobre bases de datos
  • Hay quien tiene experiencia escribiendo documentación y diagramas útiles sobre el formato de archivo de SQLite
  • La herramienta funciona bien