Transakcje w Bazie Danych: ACID i Poziomy Izolacji

Dlaczego przelew bankowy wymaga więcej niż dwóch UPDATE Przenieś 50 zł z jednego konta na drugie, a naiwna wersja to dwie instrukcje: odejmij od konta A, dodaj do konta B. Wykonaj je osobno, a jeśli proces padnie albo połączenie się zerwie między tymi dwoma, pieniądze znikają z A i nigdy nie docierają do B. Baza danych zrobiła dokładnie to, o co ją poproszono, dwa razy. Biznes i tak stracił 50 zł. ...

31 października 2026 · 8 min · 1700 słów · SpaghettiCoder

Typy JOIN w SQL Wyjaśnione na Przykładach

Źle napisany JOIN nie zgłasza błędu. Wykonuje się, zwraca wynik, a wiersze są błędne: brakujący klienci, zawyżone sumy, niewidoczne osierocone rekordy. Najczęściej zapytanie dostało dokładnie to, o co prosiło, a autor wybrał zły typ join albo filtrował w złym miejscu. Join łączy wiersze z dwóch tabel na podstawie warunku, który sam piszesz. To, które wiersze przetrwają, zależy od typu join, a sześć typów poniżej daje sześć różnych odpowiedzi z tych samych dwóch tabel. ...

2 października 2026 · 9 min · 1767 słów · SpaghettiCoder

Jak Działają Indeksy w Bazie Danych i Kiedy Je Dodawać

W tabeli z milionem wierszy to samo zapytanie SELECT może trwać pięćdziesiąt milisekund albo mniej niż jedną. Jedyna różnica: baza danych albo czyta każdy wiersz, żeby znaleźć te, których szukasz, albo skacze od razu do nich. Właśnie to umożliwia indeks — i płacisz za niego przy każdym zapisie. Sam indeks to druga, posortowana kopia jednej lub więcej kolumn, przechowywana obok tabeli i aktualizowana automatycznie przy każdej zmianie tabeli. Baza danych używa jej, żeby dotrzeć do pasujących wierszy bez dotykania reszty. ...

27 września 2026 · 8 min · 1583 słów · SpaghettiCoder