Emuārs

Kāpēc katrai Mythex lietotnei ir sava datubāze

Kad lietotnei, ko veido Mythex, vajag saglabāt datus, piemēram, reģistrācijas, rezervācijas vai pasūtījumus, Mythex šim projektam dod savu Postgres datubāzi. Ne tabulu kopīgā datubāzē, ne shēmu blakus kāda citai: atsevišķu datubāzi, izveidotu pēc pieprasījuma, kas guļ, kad neviens to neizmanto. Šeit ir, kāpēc to veidojām tā un ko tas maksā.

Ko tu saņem

Kad lūdz datus („saglabā waitlist e-pastus“, „glabā rezervācijas“) vai izmanto komandu /database, Mythex:

  • izveido veltītu Postgres datubāzi projektam (pašlaik Postgres 17),
  • ievada savienojuma datus tavā darbvietā un publicētajā lietotnē kā vides mainīgos, lai tie nekad neparādās kodā, un
  • ļauj aģentam izveidot tabulas un lasīt un rakstīt datus tavā vietā.

To pašu datubāzi izmanto tiešraides priekšskatījums un publicētā lietotne. Tā guļ pēc 5 dīkstāves minūtēm un pamostas ar nākamo vaicājumu. Jaunas datubāzes sākas mazas un var palielināties zem slodzes ar griestiem, lai skriešanas vaicājums nevarētu augt bez ierobežojuma. Vairāk datubāzu dokumentācijā.

Kāpēc ne viena liela kopīga datubāze?

Kopīga datubāze ar kolonnu, kas saka, kurai lietotnei pieder katra rinda, ir lētāka darbināt un vienkāršāk apkalpot. Mēs to nedarījām četru iemeslu dēļ.

1. Izolācija, kurai nevajag uzticēties

AI rakstīts kods kļūst. Kopīgā datubāzē viens trūkstošs WHERE app_id = … vienā lietotnes vaicājumā varētu nolasīt vai pārrakstīt cita klienta datus. Ar datubāzi katrai lietotnei nav neviena cita klienta datu, kas būtu sasniedzams; kļūda paliek savā lietotnē.

2. Tas ir īsts Postgres, nevis patentēts slānis

Tava lietotne runā ar standarta Postgres, izmantojot parastu savienojuma virkni. Jebkura bibliotēka, ORM vai rīks, kas strādā ar Postgres, strādā arī šeit. Ja eksportē projektu, lai to palaistu citur, tas sagaida Postgres datubāzi, ko piedāvā katrs hostings, nevis Mythex specifisku API.

3. Katru lietotni var veidot, kā tai vajag

Vienai lietotnei vajag tabulu bookings ar unikālu ierobežojumu laika slotiem; citai vajag pilnteksta meklēšanu produktos. Ar savu datubāzi katras lietotnes shēma un migrācijas ir tās pašas lieta. Nekas nav jāpielāgo zemākā kopsaucēja dizainam.

4. Izmaksas seko lietojumam

Tā kā katra datubāze guļ pati par sevi, lietotne, ko neviens neizmanto, maksā gandrīz neko, un aktīvas lietotnes izmaksas ir redzamas kā sava rinda. Publicētās datubāzes lietojums tiek norēķināts pēc tā, ko datubāze faktiski izmērīja: kā šis norēķins darbojas.

Kompromisi

Šis dizains nav bez maksas:

  • Aukstais starts. Guļoša datubāze pēc klusa perioda pamostas pirmajā vaicājumā ar nelielu kavēšanos. Vairumam lietotņu to gandrīz nepamana; lietotnei, kam jāatbild uzreiz jebkurā laikā, tas ir jāņem vērā.
  • Izmaksas, kad ir nomoda, bet dīkstāvē. Datubāze paliek nomodā, kamēr kaut kas to vaicā. Lietotne, kas vaicā savu datubāzi ik pēc dažām sekundēm, to tur nomodā visu diennakti un maksā vairāk nekā tā, kas vaicā pēc pieprasījuma. Ja tavs lietojums izskatās augstāks, nekā gaidīji, tas parasti ir iemesls: pasaki AI pārtraukt vaicāt un ielādēt datus, kad tie vajadzīgi.
  • Vairāk kustīgu daļu mums. Tūkstošu datubāžu izveidošana, izsekošana un tīrīšana ir vairāk darba nekā vienas. Tā ir mūsu problēma, nevis tava.

Ja esi jauns datubāzēm

Datubāze ir vieta, kur lietotne glabā to, kas tai jāatceras. Ja ideja ir jauna, sāc ar ko ir datubāze un ko ir Postgres. Kad esi gatavs veidot kaut ko, kas glabā datus, kā veidot lietotni ar AI izskaidro, kā to pievienot.

Mythex · Pricing · Veidojiet jebko ar AI · Tīmekļa vietņu un lietotņu veidnes · Mythex salīdzinājumā · AI lietotņu veidošanas glosārijs · Bezmaksas rīki lietotņu veidošanai ar 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ų Македонски മലയാളം Монгол मराठी 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 简体中文 繁體中文(香港) 繁體中文(台灣)