HN dévoile : Explorateur de pages disque SQLite
(github.com/QuadrupleA)-
SQLite Page Explorer
-
SQLite Page Explorer est une petite application GUI développée avec redbean, qui permet d’explorer une base de données SQLite "page par page", telle que SQLite la voit
-
Pourquoi est-ce nécessaire ?
- SQLite, comme la plupart des bases de données, stocke les données dans des pages de la taille d’un bloc disque (généralement 4 KB) afin de maximiser la vitesse de lecture et d’écriture
- En général, les développeurs interagissent avec la base de données au niveau du "schéma", mais examiner le niveau des "pages" permet d’obtenir des observations intéressantes
- Voir à quoi ressemblent réellement les index sur le disque (ce sont essentiellement de petites tables séparées)
- Accélérer les requêtes et les applications en stockant les données de manière plus compacte
- Découvrir des problèmes et des inefficacités invisibles au niveau du schéma
- Acquérir une intuition sur des structures de données importantes comme les B-arbres, qui sont à la base de la plupart des systèmes de fichiers et des bases de données
-
Exécutable partout
- Grâce à redbean, cosmopolitan et αcτµαlly pδrταblε εxεcµταblε, il s’agit d’un unique exécutable de 6.5 MB qui s’exécute nativement sur Windows, Linux, MacOS, divers BSD, ARM64 et x64
- Ce fichier est une archive zip contenant l’application et le code Lua qui analyse le format binaire de la base de données
-
Installation
- Télécharger
sqlite-page-explorer.comdepuis les releases - Sur les systèmes de type Unix, exécuter
chmod +x - Glisser le fichier de base de données ou lancer depuis la console :
sqlite-page-explorer.com mySqliteDatabase.db - L’application s’ouvre dans un onglet du navigateur
- Une fois terminé, appuyer deux fois sur Ctrl-C dans la console
- Les αcτµαlly pδrταblε εxεcµταblεs peuvent perturber les systèmes de détection antivirus des navigateurs et des systèmes d’exploitation, provoquant des faux positifs. Appliquer les précautions habituelles avec tout ce qui est téléchargé sur Internet
- Avec de grandes bases de données de plus de 500 MB, le chargement de la vue de niveau supérieur qui lit toutes les pages peut prendre du temps
- Télécharger
-
Construction
- Il suffit de compresser le contenu de
files/dansredbean-3.0.0-cosmos.comaveczip. Téléchargeable depuis https://cosmo.zip/pub/cosmos/bin/ (cliquer sur "redbean" dans la liste) - Si
zipn’est pas installé sur le système, il faut le télécharger depuis ce site - Il est aussi possible d’exécuter le script Python (3.6+) inclus
zipitup.py - Pour modifier l’application, exécuter
redbean-3.0.0-cosmos.com -D filesafin de la servir depuis le sous-répertoirefiles. Inutile de reconstruire l’archive zip à chaque modification
- Il suffit de compresser le contenu de
-
Ce n’est pas un chef-d’œuvre
- Le code peut être un peu désordonné, car cela faisait partie d’une expérimentation pour tester redbean et utiliser Lua pour la première fois
- Utiliser un système de templates, comme les templates natifs de Jinja ou de bottle.py, permettrait de réduire considérablement les concaténations de chaînes et les appels à Write()
- Il serait bien que la console se ferme automatiquement lorsque le dernier onglet est fermé, et qu’avec de grosses bases de données l’application s’arrête à la page 10,000 tant que l’utilisateur ne confirme pas
- PR bienvenues
1 commentaires
Avis Hacker News
sqlite-repr, construit avec Dioxus, propose également une visualisation intéressante de SQLiteshowdb, un outil CLI utile pour explorer les fichiers de base de données