Płaskie schematy, brak indeksów, zapytania N+1. Dlaczego bazy danych generowane przez AI rozpadają się pod prawdziwym ruchem.
AI generuje schemat bazy, który wygląda poprawnie na pierwszy rzut oka. Masz tabele, kolumny, dane się zapisują. Problem w tym, że ten schemat jest płaski. Imię klienta, e-mail i telefon są zapisane bezpośrednio w każdym zamówieniu, zamiast być połączone z tabelą użytkowników. Przy 10 testowych rekordach nikt tego nie zauważy. Przy prawdziwym ruchu zaczynają się problemy.
Duplikacja danych jest wszędzie. Zmiana adresu e-mail klienta oznacza aktualizację setek wierszy zamiast jednego. To klasyczne anomalie aktualizacji — problem rozwiązany w inżynierii baz danych od dekad, ale AI o tym nie wie, bo generuje kod, który „działa", a nie kod, który jest poprawny.
Dochodzi do tego brak indeksów. Zapytanie, które powinno trwać 50ms, trwa 3 sekundy. Baza przeszukuje całą tabelę wiersz po wierszu, bo nikt nie powiedział AI, żeby dodało indeks na kolumnie, po której filtrujesz.
Narzędzia AI są trenowane na kodzie, który „działa" — nie na kodzie zoptymalizowanym pod obciążenie. Generują schemat, który wygląda dobrze w demo, ale rozpada się pod produkcyjnym obciążeniem. Brak normalizacji, brak indeksów, brak myśli o tym, jak dane będą rosnąć.
Klasyczny problem N+1: AI generuje kod, który pobiera listę zamówień, a potem dla każdego zamówienia wykonuje osobne zapytanie do bazy po dane klienta. 100 zamówień = 101 zapytań do bazy. To powinno być jedno zapytanie z JOIN.
Do tego dochodzi brak connection pooling. Każde żądanie HTTP otwiera nowe połączenie do bazy danych. Przy 50 jednoczesnych użytkownikach baza zaczyna odrzucać połączenia, bo limit został wyczerpany. AI nie myśli o współdzieleniu połączeń — po prostu łączy się z bazą i tyle.
Aplikacja działa świetnie z 10 testowymi użytkownikami. Przy 100 prawdziwych użytkownikach strony ładują się 5–10 sekund. Przy 500 — timeout. Problem nie jest w serwerze. Problem jest w bazie danych.
WHERE, JOIN i ORDER BY. Zapytanie, które trwało 3 sekundy, zaczyna działać w 50ms.JOIN-y lub batch queries. 101 zapytań staje się jednym.AI generuje schematy, które wyglądają dobrze w demo, ale rozpadają się pod produkcyjnym obciążeniem. Naprawiamy fundamenty — żeby aplikacja działała równie szybko przy 10 000 użytkowników co przy 10.
Przeglądamy schemat, identyfikujemy wąskie gardła i naprawiamy je. Zapytania, które trwają sekundy, zaczną działać w milisekundach.
Zarezerwuj bezpłatną rozmowę →