1 पॉइंट द्वारा GN⁺ 2025-02-08 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • SQLite Page Explorer

  • SQLite Page Explorer redbean से बनाया गया एक छोटा GUI application है, जो SQLite database को ठीक वैसे "page-by-page" एक्सप्लोर करने देता है जैसे SQLite उसे देखता है

  • इसकी ज़रूरत क्यों है?

    • SQLite और ज़्यादातर databases डेटा को disk block size वाले pages में स्टोर करते हैं, जो आमतौर पर 4KB के होते हैं, ताकि read और write जितना संभव हो उतना तेज़ हो सके
    • आम तौर पर developers database के साथ "schema level" पर interact करते हैं, लेकिन "page level" को देखने पर ये दिलचस्प insights मिल सकते हैं
      • index वास्तव में disk पर कैसे दिखते हैं, यह देखा जा सकता है (असल में वे अलग छोटे tables होते हैं)
      • डेटा को ज़्यादा compress करके store करने से queries और applications को तेज़ बनाया जा सकता है
      • schema level पर न दिखने वाली समस्याएँ और inefficiencies खोजी जा सकती हैं
      • B-tree जैसी महत्वपूर्ण data structures के बारे में intuition मिल सकती है, जो ज़्यादातर file systems और databases की नींव हैं
  • कहीं भी चलाया जा सकता है

    • redbean, cosmopolitan, αcτµαlly pδrταblε εxεcµταblε की बदौलत, यह एक single 6.5 MB executable है जो Windows, Linux, MacOS, कई BSD, ARM64 और x64 पर native रूप से चलता है
    • यह फ़ाइल एक zip file है, जिसमें application चलाने और database binary format को parse करने वाला Lua code शामिल है
  • इंस्टॉल कैसे करें

    • releases से sqlite-page-explorer.com डाउनलोड करें
    • Unix systems पर chmod +x चलाएँ
    • database file को drag करें या console से चलाएँ: sqlite-page-explorer.com mySqliteDatabase.db
    • application browser tab में खुल जाएगा
    • काम पूरा होने पर console में Ctrl-C दो बार दबाएँ
    • αcτµαlly pδrταblε εxεcµταblεs browser और operating system के virus detection systems को भ्रमित कर सकते हैं, जिससे false positives हो सकते हैं. इंटरनेट से डाउनलोड की गई किसी भी चीज़ के साथ सामान्य सावधानी बरतें
    • अगर 500 MB से बड़े databases इस्तेमाल करते हैं, तो सभी pages पढ़ने वाला top-level view लोड होने में समय लग सकता है
  • बिल्ड कैसे करें

    • files/ की सामग्री को redbean-3.0.0-cosmos.com पर zip के रूप में पैक करें. इसे https://cosmo.zip/pub/cosmos/bin/ से डाउनलोड किया जा सकता है (सूची में "redbean" पर क्लिक करें)
    • अगर आपके system में zip नहीं है, तो उसे उसी साइट से डाउनलोड करना होगा
    • शामिल zipitup.py Python (3.6+) script भी चलाया जा सकता है
    • बदलाव करने के लिए redbean-3.0.0-cosmos.com -D files चलाकर files subdirectory से application serve कर सकते हैं. हर बदलाव पर zip को दोबारा build करने की ज़रूरत नहीं है
  • कोई masterpiece नहीं है

    • redbean को आज़माने और पहली बार Lua इस्तेमाल करने के एक प्रयोग के हिस्से के रूप में, code थोड़ा बिखरा हुआ हो सकता है
    • Jinja या bottle.py के native templates जैसे template system का इस्तेमाल करने से बहुत सारे string concatenation और Write() statements कम हो सकते हैं
    • अच्छा होता अगर आख़िरी tab बंद होने पर console अपने-आप बंद हो जाता, और बड़े databases के लिए page 10,000 पर रुकने की सुविधा होती जब तक user पुष्टि न करे
    • PR स्वागत हैं

1 टिप्पणियां

 
GN⁺ 2025-02-08
Hacker News टिप्पणियाँ
  • animated GIF screenshot पोस्ट करने वाला प्रोजेक्ट काफ़ी दिलचस्प है
  • SQLite file format दस्तावेज़ को देखकर SQLite फ़ाइलों को parse करने वाला कोड लिखना उम्मीद से आसान है
  • SQLite के अंदरूनी काम का अनुभव रखने वाले के रूप में, इस प्रोजेक्ट पर किया गया काम प्रभावशाली है
    • Dioxus से बना sqlite-repr भी SQLite का दिलचस्प visualization देता है
    • संबंधित लिंक: sqlite-repr
  • प्रोजेक्ट शानदार है, और color legend जोड़ना अच्छा रहेगा
    • बड़े database (3.6GB, 942719 pages) में performance समस्या आती है, इसलिए pagination पर विचार किया जा सकता है
  • 10 साल पहले एक security tool के लिए ऐसा ही काम किया था, और यह अच्छा है कि यह प्रोजेक्ट MIT license के तहत उपलब्ध है
  • SQLite source में showdb नाम का एक उपयोगी CLI tool शामिल है, जो database file को explore करने में मदद करता है
  • जिन लोगों के लिए lecture या class लेना मुश्किल है, उनके लिए यह प्रोजेक्ट data structure को प्रभावी ढंग से visualize करने का अच्छा तरीका है
  • database सीख रहे लोगों के लिए यह बहुत उपयोगी tool है
  • SQLite file format पर documentation और उपयोगी diagram लिखने का अनुभव है
  • यह tool अच्छी तरह काम करता है