### Przykładowa tabela: Najpierw utwórz tabelę `users`, która posłuży do testowania indeksów: ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL, age INT NOT NULL, signup_date DATE NOT NULL ); ``` ### Zadania: 1. **Indeks dla przyspieszenia wyszukiwania po emailu** - Utwórz indeks na kolumnie `email`, aby przyspieszyć wyszukiwanie użytkowników po adresie e-mail. - Zweryfikuj działanie indeksu za pomocą `EXPLAIN`. 2. **Indeks wielokolumnowy** - Stwórz indeks na `name` i `age`, aby zoptymalizować wyszukiwanie użytkowników w określonym wieku o danym imieniu. - Przetestuj efektywność indeksu dla zapytania typu Jan wiek 30. 3. **Indeks unikalny** - Dodaj indeks unikalny do `email`, aby zapewnić, że w bazie nie ma dwóch użytkowników z tym samym adresem e-mail. - Spróbuj wstawić duplikat e-maila i sprawdź, czy MySQL zgłasza błąd. 4. **Indeks na kolumnie daty** - Utwórz indeks na `signup_date`, aby przyspieszyć zapytania wyszukujące użytkowników zarejestrowanych w określonym przedziale czasowym. - Sprawdź efektywność poprzez zapytanie pomiędzy 2024-01-01 a 2024-12-31. 5. **Usunięcie i ponowne utworzenie indeksu** - Usuń indeks z kolumny `email`, a następnie ponownie go dodaj. Porównaj czas wykonania zapytania przed i po dodaniu indeksu. 6. **Indeks pełnotekstowy** - Dodaj indeks pełnotekstowy na kolumnę `name`, aby umożliwić wyszukiwanie słów kluczowych w nazwach użytkowników. - Użyj zapytania `SELECT * FROM users WHERE MATCH(name) AGAINST ('Jan' IN NATURAL LANGUAGE MODE)` do testowania pełnotekstowego wyszukiwania.