Blog

Zakaj ima vsaka aplikacija Mythex svojo bazo

Ko aplikacija, ki jo gradite na platformi Mythex, potrebuje shranjevanje podatkov, na primer prijave, rezervacije ali naročila, Mythex temu projektu dodeli lastno bazo Postgres. Ne tabele v skupni bazi, ne sheme poleg tuje: ločena baza, ustvarjena na zahtevo, ki zaspi, kadar je nihče ne uporablja. Tukaj je, zakaj smo jo zgradili tako in kaj stane.

Kaj dobite

Ko zahtevate podatke (»shrani e-poštne naslove za čakalni seznam«, »shrani rezervacije«) ali uporabite ukaz /database, Mythex:

  • ustvari namensko bazo Postgres za projekt (trenutno Postgres 17),
  • povezavne podatke vstavi v vaš delovni prostor in v objavljeno aplikacijo kot spremenljivke okolja, tako da se nikoli ne pojavijo v vaši kodi, in
  • agentu omogoči, da zanje ustvari tabele ter bere in piše podatke.

Isto bazo uporabljata živi predogled in objavljena aplikacija. Zaspi po 5 minutah mirovanja in se prebudi ob naslednji poizvedbi. Nove baze so na začetku majhne in se pod obremenitvijo lahko povečajo, z zgornjo mejo, da tekoča poizvedba ne more rasti brez omejitve. Več v dokumentaciji o bazah.

Zakaj ne ena velika skupna baza?

Skupna baza s stolpcem, ki pove, kateri aplikaciji pripada vsaka vrstica, je cenejša za zagon in enostavnejša za upravljanje. Odločili smo se, da tega ne bomo naredili, iz štirih razlogov.

1. Izolacija, ki ji vam ni treba zaupati

Koda, ki jo piše AI, dela napake. V skupni bazi bi ena manjkajoča WHERE app_id = … v poizvedbi ene aplikacije lahko prebrala ali prepisala podatke druge stranke. Z bazo na aplikacijo do podatkov drugih strank ni dosega, napaka pa ostane v svoji aplikaciji.

2. Pravi Postgres, ne lastniška plast

Vaša aplikacija se pogovarja s standardnim Postgresom z običajnim povezovalnim nizom. Vsaka knjižnica, ORM ali orodje, ki deluje s Postgresom, deluje tudi tukaj. Če izvozite projekt, da ga zaženete drugje, pričakuje bazo Postgres, nekaj, kar ponuja vsak gostiteljski ponudnik, ne API, specifičen za Mythex.

3. Vsaka aplikacija je lahko oblikovana, kot potrebuje

Ena aplikacija želi tabelo bookings z unikatno omejitvijo na časovnih režah, druga pa polnobesedno iskanje po izdelkih. Z lastno bazo ima vsaka aplikacija svojo shemo in migracije. Nič ni treba prilagajati načrtu, ki ustreza najmanjšemu skupnemu imenovalcu.

4. Strošek sledi uporabi

Ker vsaka baza zaspi sama zase, aplikacija, ki je nihče ne uporablja, stane skoraj nič, strošek zelo aktivne aplikacije pa je viden kot lastna postavka. Uporaba objavljenih baz se obračuna na podlagi tega, kar je baza dejansko izmerila. Kako to obračunavanje deluje.

Kompromisi

Ta zasnova ni brezplačna:

  • Hladni zagoni. Speča baza se ob prvi poizvedbi po mirnem obdobju nekaj trenutkov prebuja. Za večino aplikacij to komajda opazite. Za aplikacijo, ki mora odgovoriti takoj ob katerikoli uri, je to pomislek.
  • Stroški, ko je budna, a neaktivna. Baza ostane budna, dokler jo kaj poizveduje. Aplikacija, ki vsakih nekaj sekund anketira svojo bazo, jo drži budno ves dan in stane več kot aplikacija, ki poizveduje po potrebi. Če je vaša poraba višja, kot pričakujete, je to običajno razlog. Prosite AI, naj preneha anketirati in podatke nalaga, ko so potrebni.
  • Več premičnih delov za nas. Ustvarjanje, sledenje in čiščenje na tisoče baz je več dela kot ena. To je naš problem, ne vašega.

Če ste novi pri bazah podatkov

Baza je tam, kjer aplikacija hrani to, kar si mora zapomniti. Če je ideja nova, začnite z kaj je baza podatkov in kaj je Postgres. Ko boste pripravljeni na gradnjo nečesa, kar shranjuje podatke, vas kako zgraditi aplikacijo z AI vodi skozi dodajanje tega.

Mythex · Pricing · Zgradite karkoli z AI · Predloge za spletna mesta in aplikacije · Mythex v primerjavi · Slovar pojmov gradnje aplikacij z AI · Brezplačna orodja za gradnjo aplikacij z 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 简体中文 繁體中文(香港) 繁體中文(台灣)