Dalej•LEKCJA 25 / 26

Indeksy i transakcje

Kurs SQL · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.

Indeksy przyspieszają wybrane wyszukiwania, a transakcje grupują operacje.

Jak to działa?

Indeks może przyspieszyć filtrację, ale zajmuje miejsce i zwiększa koszt zapisu. BEGIN i COMMIT pozwalają traktować zestaw zmian jako jedną jednostkę.

Składnia oraz zachowanie zależą od silnika bazy.

Przykład 1 — poznaj zapis

CREATE INDEX idx_users_city ON users (city);

BEGIN;
UPDATE users SET city = 'Lublin' WHERE id = 1;
COMMIT;

Przykład używa składni zgodnej m.in. z SQLite i PostgreSQL; w MySQL start transakcji to zwykle START TRANSACTION.

Przeczytaj kod linijka po linijce

  1. CREATE INDEX idx_users_city ON users (city);Wykonujemy operację na strukturze bazy lub transakcji.
  2. BEGIN;Wykonujemy operację na strukturze bazy lub transakcji.
  3. UPDATE users SET city = 'Lublin' WHERE id = 1;Modyfikujemy albo usuwamy wybrane dane.
Oczekiwany wynik / efektpo uruchomieniu przykładu
Tworzy indeks, a następnie zatwierdza zmianę miasta w transakcji.

Przykład 2 — podobny problem, inne dane

Teraz przyjrzyj się drugiemu przykładowi. Zwróć uwagę na to, co zmieniło się w kodzie, a co w wyniku. Spróbuj przewidzieć rezultat przed przeczytaniem odpowiedzi.

BEGIN; UPDATE users SET city = 'Lublin' WHERE id = 1; ROLLBACK;
Wynik drugiego przykładupo uruchomieniu przykładu
Zmiana jest cofnięta.
Sprawdź, czy rozumiesz

Wróć do pierwszego przykładu, zmień jedną wartość i spróbuj samodzielnie przewidzieć wynik. Następnie uruchom kod i porównaj rezultat. W ten sposób nauczysz się nie tylko przepisywać instrukcje, ale rozumieć ich działanie.

Spróbuj samodzielnie

Sprawdź w dokumentacji swojej bazy jak cofnąć transakcję przez ROLLBACK.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.