Blog

Prečo každá aplikácia Mythex dostáva vlastnú databázu

Keď aplikácia, ktorú postavíte na Mythexe, potrebuje ukladať dáta — registrácie, rezervácie, objednávky — Mythex tomuto projektu dá vlastnú Postgres databázu. Nie tabuľku v zdieľanej databáze, nie schému vedľa cudzej: samostatnú databázu, vytvorenú na požiadanie, ktorá zaspí, keď ju nikto nepoužíva. Tu je, prečo sme to tak postavili, a čo to stojí.

Čo dostanete

Keď si vyžiadate dáta („ulož e-maily do čakacej listiny“, „ukladaj rezervácie“) alebo použijete príkaz /database, Mythex:

  • vytvorí pre projekt vyhradenú Postgres databázu (momentálne Postgres 17),
  • vloží prihlasovacie údaje do vášho workspace a do publikovanej aplikácie ako premenné prostredia, takže sa nikdy neobjavia vo vašom kóde, a
  • umožní agentovi vytvárať tabuľky a čítať a zapisovať dáta za vás.

Rovnakú databázu používa živý náhľad aj publikovaná aplikácia. Zaspí po 5 minútach nečinnosti a prebudí sa pri ďalšom dotaze. Nové databázy začínajú malé a pri záťaži sa môžu zväčšiť, s horným limitom, aby bežiaci dotaz nerástol bez obmedzenia. Viac v dokumentácii k databázam.

Prečo nie jedna veľká zdieľaná databáza?

Zdieľaná databáza so stĺpcom, ktorý určuje, ku ktorej aplikácii riadok patrí, je lacnejšia na prevádzku a jednoduchšia na správu. My sme to nerobili zo štyroch dôvodov.

1. Izolácia, ktorej nemusíte dôverovať

Kód napísaný AI robí chyby. Vo zdieľanej databáze by jeden chýbajúci WHERE app_id = … v dotaze jednej aplikácie čítal alebo prepisoval dáta iného zákazníka. S databázou na aplikáciu sa k dátam iného zákazníka nedostanete — chyba zostane v rámci vlastnej aplikácie.

2. Je to skutočný Postgres, nie vlastná vrstva

Vaša aplikácia komunikuje so štandardným Postgresom cez bežný connection string. Každá knižnica, ORM alebo nástroj, ktorý funguje s Postgresom, funguje aj tu. Ak exportujete projekt, aby bežal inde, očakáva Postgres databázu — niečo, čo ponúka každý hostingový poskytovateľ — nie API špecifické pre Mythex.

3. Každá aplikácia sa môže tvarovať podľa svojich potrieb

Jedna aplikácia chce tabuľku bookings s unikátnym obmedzením na časové sloty; iná chce fulltextové vyhľadávanie v produktoch. Vďaka vlastnej databáze sú schéma a migrácie každej aplikácie jej vlastnou záležitosťou. Nič sa nemusí vtesnať do návrhu, ktorý vyhovuje všetkým najmenej.

4. Náklady nasledujú používanie

Keďže každá databáza zaspáva samostatne, aplikácia, ktorú nikto nepoužíva, stojí takmer nič, a náklad vyťaženej aplikácie je viditeľný ako jej vlastná položka. Publikované využitie databázy sa účtuje podľa toho, čo databáza skutočne namerala — ako toto účtovanie funguje.

Kompromisy

Tento návrh nie je zadarmo:

  • Studené štarty. Spiaca databáza potrebuje chvíľu, kým sa prebudí pri prvom dotaze po tichom období. Pre väčšinu aplikácií je to takmer nepostrehnuteľné; pre aplikáciu, ktorá musí odpovedať okamžite kedykoľvek, je to dôvod na úvahu.
  • Náklady, keď je hore, ale nič nerobí. Databáza zostáva hore, kým ju niečo dotazuje. Aplikácia, ktorá databázu dotazuje každých pár sekúnd, ju drží hore non-stop a stojí viac než aplikácia, ktorá dotazuje na požiadanie. Ak je vaše využitie vyššie, než čakáte, zvyčajne je to tým — požiadajte AI, aby prestala dotazovať a načítavala dáta, keď sú potrebné.
  • Viac pohyblivých častí pre nás. Vytváranie, sledovanie a upratovanie tisícok databáz je viac práce než jednej. To je náš problém, nie váš.

Ak ste s databázami noví

Databáza je miesto, kde si aplikácia ukladá to, čo si má pamätať. Ak je pre vás tento pojem nový, začnite s čo je databáza a čo je Postgres. Keď budete pripravení postaviť niečo, čo ukladá dáta, ako postaviť aplikáciu s AI prejde pridaním databázy krok za krokom.

Mythex · Pricing · Vytvorte čokoľvek s AI · Šablóny webov a aplikácií · Mythex v porovnaní · Slovník pojmov tvorby aplikácií s AI · Bezplatné nástroje na tvorbu aplikácií s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)