Blog

Zašto svaka Mythex aplikacija dobija vlastitu bazu podataka

Kada aplikacija koju gradite na Mythexu treba sačuvati podatke, na primjer prijave, rezervacije ili narudžbe, Mythex tom projektu daje sopstvenu Postgres bazu. Ne tabelu u zajedničkoj bazi, ne šemu pored tuđe: zasebnu bazu, kreiranu na zahtjev, koja spava kada je niko ne koristi. Evo zašto smo je tako napravili i šta to košta.

Šta dobijate

Kada zatražite podatke („sačuvaj emailove s liste čekanja“, „čuvaj rezervacije“) ili upotrijebite komandu /database, Mythex:

  • kreira namjensku Postgres bazu za projekat (trenutno Postgres 17),
  • ubacuje detalje konekcije u vaš radni prostor i u objavljenu aplikaciju kao varijable okruženja, pa se nikada ne pojavljuju u vašem kodu, i
  • omogućava agentu da kreira tabele i čita i piše podatke umjesto vas.

Isto bazu koriste živi preview i objavljena aplikacija. Ona ide na spavanje nakon 5 minuta neaktivnosti i budi se na sljedeći upit. Nove baze počinju male i mogu se skalirati pod opterećenjem, uz plafon, pa upit koji se otme kontroli ne može rasti bez ograničenja. Više u dokumentaciji o bazama.

Zašto ne jedna velika zajednička baza?

Zajednička baza sa kolonom koja kaže kojoj aplikaciji pripada koji red jeftinija je za rad i jednostavnija za održavanje. Nismo to izabrali iz četiri razloga.

1. Izolacija kojoj ne morate vjerovati

Kod koji piše AI pravi greške. U zajedničkoj bazi, jedan izostavljen WHERE app_id = … u upitu jedne aplikacije mogao bi pročitati ili prepisati podatke drugog kupca. S bazom po aplikaciji, nema tuđih podataka u dometu: greška ostaje unutar svoje aplikacije.

2. To je pravi Postgres, a ne vlasnički sloj

Vaša aplikacija razgovara sa standardnim Postgresom preko normalnog connection stringa. Svaka biblioteka, ORM ili alat koji radi s Postgresom radi i ovdje. Ako izvezete projekat da biste ga pokrenuli negdje drugo, on očekuje Postgres bazu, nešto što nudi svaki hosting provajder, a ne Mythex-specifičan API.

3. Svaka aplikacija može imati oblik koji joj treba

Jednoj aplikaciji treba tabela bookings s jedinstvenim ograničenjem na vremenske termine; druga želi full-text pretragu proizvoda. Sa sopstvenom bazom, šema i migracije svake aplikacije su njen posao. Ništa ne mora uklapati u dizajn najmanjeg zajedničkog nazivnika.

4. Trošak prati upotrebu

Pošto svaka baza spava nezavisno, aplikacija koju niko ne koristi košta gotovo ništa, a trošak zauzete aplikacije vidi se kao sopstvena stavka. Upotreba objavljenih baza naplaćuje se prema onome što je baza zaista izmjerila: kako ta naplata funkcioniše.

Kompromisi

Ovaj dizajn nije besplatan:

  • Hladni start. Spavajuća baza potrebno je malo vremena da se probudi pri prvom upitu nakon mirnog perioda. Za većinu aplikacija to je jedva primjetno; za aplikaciju koja mora odgovarati odmah u bilo koje doba, to je važno.
  • Trošak dok je budna. Baza ostaje budna dok je nešto upituje. Aplikacija koja svakih nekoliko sekundi provjerava bazu drži je budnom cijelo vrijeme i košta više od one koja upituje po potrebi. Ako je vaša potrošnja veća nego što očekujete, obično je to razlog: zamolite AI da prestane sa provjeravanjem i da učitava podatke kada zatreba.
  • Više pokretnih dijelova za nas. Kreiranje, praćenje i čišćenje hiljada baza posao je veći nego kod jedne. To je naš problem, a ne vaš.

Ako ste novi u bazama

Baza je mjesto gdje aplikacija čuva ono što treba da zapamti. Ako je ideja nova, počnite s šta je baza podataka i šta je Postgres. Kada budete spremni da napravite nešto što čuva podatke, kako napraviti aplikaciju uz AI prolazi kroz dodavanje baze.

Mythex · Pricing · Izradite bilo šta uz AI · Šabloni za web stranice i aplikacije · Mythex u poređenju · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা 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 Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)