Blog

Dlaczego każda aplikacja Mythex dostaje własną bazę danych

Gdy aplikacja, którą budujesz w Mythex, musi zapisywać dane — rejestracje, rezerwacje, zamówienia — ten projekt dostaje własną bazę Postgres. Nie tabelę we wspólnej bazie, nie schemat obok cudzego: osobną bazę, tworzoną na żądanie, która zasypia, gdy nikt jej nie używa. Oto dlaczego zbudowaliśmy to właśnie tak i co to kosztuje.

Co dostajesz

Gdy prosisz o dane („zapisuj e-maile z listy oczekujących”, „przechowuj rezerwacje”) albo używasz polecenia /database, Mythex:

  • tworzy dedykowaną bazę Postgres dla projektu (obecnie Postgres 17),
  • wstrzykuje dane połączenia do Twojej przestrzeni roboczej i opublikowanej aplikacji jako zmienne środowiskowe, więc nigdy nie pojawiają się w kodzie, oraz
  • pozwala agentowi tworzyć tabele i odczytywać oraz zapisywać dane za Ciebie.

Ta sama baza jest używana przez podgląd na żywo i opublikowaną aplikację. Zasypia po 5 minutach bezczynności i budzi się przy następnym zapytaniu. Nowe bazy zaczynają mały i mogą się powiększać pod obciążeniem, z sufitem, żeby zapytanie, które wymknie się spod kontroli, nie rosło bez końca. Więcej w dokumentacji baz danych.

Dlaczego nie jedna duża wspólna baza?

Wspólna baza, w której kolumna mówi, do której aplikacji należy każdy wiersz, jest tańsza w utrzymaniu i prostsza w obsłudze. Nie zdecydowaliśmy się na nią z czterech powodów.

1. Izolacja, której nie musisz nikomu ufać

Kod pisany przez AI popełnia błędy. We wspólnej bazie jedno brakujące WHERE app_id = … w zapytaniu jednej aplikacji mogłoby odczytać albo nadpisać dane innego klienta. Przy bazie na aplikację nie ma w zasięgu danych żadnego innego klienta — błąd zostaje w swojej aplikacji.

2. To prawdziwy Postgres, a nie zastrzeżona warstwa

Twoja aplikacja rozmawia ze standardowym Postgresem przez zwykły ciąg połączenia. Każda biblioteka, ORM lub narzędzie, które działa z Postgresem, działa tutaj. Jeśli wyeksportujesz projekt, żeby uruchomić go gdzie indziej, będzie oczekiwał bazy Postgres — czegoś, co oferuje każdy dostawca hostingu — a nie API specyficznego dla Mythex.

3. Każda aplikacja może mieć kształt, którego potrzebuje

Jedna aplikacja chce tabelę bookings z unikalnym ograniczeniem na sloty czasowe; inna chce pełnotekstowego wyszukiwania po produktach. Mając własną bazę, schemat i migracje każdej aplikacji są jej własną sprawą. Nic nie musi pasować do wspólnego najmniejszego wspólnego mianownika.

4. Koszt idzie za użyciem

Skoro każda baza zasypia osobno, aplikacja, z której nikt nie korzysta, kosztuje prawie nic, a koszt aktywnej aplikacji jest widoczny jako jej własna pozycja. Użycie opublikowanych baz jest rozliczane na podstawie tego, co baza faktycznie zmierzyła — jak działa to rozliczanie.

Kompromisy

Ten projekt nie jest darmowy:

  • Zimne starty. Śpiąca baza potrzebuje chwili, żeby się obudzić przy pierwszym zapytaniu po cichym okresie. Dla większości aplikacji to ledwo zauważalne; dla aplikacji, która musi odpowiadać natychmiast o każdej porze, to coś do rozważenia.
  • Koszty, gdy jest nie śpi. Baza pozostaje obudzona, dopóki cokolwiek ją odpytuje. Aplikacja, która odpytuje bazę co kilka sekund, trzyma ją na chodzie całą dobę i kosztuje więcej niż ta, która pyta na żądanie. Jeśli Twoje zużycie wygląda wyżej, niż się spodziewasz, zwykle to jest powód — poproś AI, żeby przestało odpytywać i ładowało dane wtedy, gdy są potrzebne.
  • Więcej ruchomych części po naszej stronie. Tworzenie, śledzenie i sprzątanie tysięcy baz to więcej pracy niż jednej. To nasz problem do udźwignięcia, a nie Twój.

Jeśli dopiero zaczynasz z bazami danych

Baza to miejsce, w którym aplikacja trzyma to, co musi zapamiętać. Jeśli ten pomysł jest dla Ciebie nowy, zacznij od czym jest baza danych i czym jest Postgres. Gdy będziesz gotowy zbudować coś, co przechowuje dane, jak zbudować aplikację z AI pokazuje, jak ją dodać.

Mythex · Pricing · Zbuduj wszystko z AI · Szablony stron i aplikacji · Mythex w porównaniu · Słownik budowania aplikacji z AI · Darmowe narzędzia do budowania aplikacji 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 ਪੰਜਾਬੀ 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 简体中文 繁體中文(香港) 繁體中文(台灣)