Optymalizacja zapytań SQL Certificate for Piotr Janaska
Certificate ID:
724599
Authentication Code:
7eec4
Certified Person Name:
Piotr Janaska
Trainer Name:
Zbigniew Rastabiga
Duration Days:
4
Duration Hours:
28
Course Name:
Optymalizacja zapytań SQL
Course Date:
2023-06-26 09:00 to 2023-06-29 16:00
Course Outline:
Architektura fizyczna/logiczna MySQL
- Pliki serwera oraz skrypty startowe
- Konfiguracja serwera MySQL
- My.cnf
- Podstawowe parametry
- Pliki dziennika serwera
- Query log
- Slow query log
- Error log
Zarządzanie
- Konta użytkowników
- Uprawnienia i bezpieczeństwo w MySQL
- Kopie zapasowe i odtwarzanie - Mysqldump vs. Percona Backup
- Konserwacja bazy danych
Optymalizacja schematów
- InnoDB: konkretne przedstawienie – wady zalety, czym się tak naprawdę różni od MyISAM - kiedy co stosować?
- Jak dobierać klucze główne (kiedy przestrzenne, kiedy b-tree itd)?
- Wyszukiwanie fulltext na silniku InnoDB (możliwe <5.6 tylko MyISAM, powyżej 5.6 MyISAM+InnoDB)
MySQL Query Cache
- Po co, dla jakich zapytań, jaka wartość, czy warto aby był duzy?
Testy wydajności , określanie problemów wydajnościowych
- Czym testować – w zależności od wyników jakie chcemy otrzymać
- Rozwiazywanie problemów wydajnościowych (slow queries, waits, performance tools etc.)
Data sharding (w poziomie i w pionie)
- Różnice, koszty, ograniczenia
Optymalizacja schematów
Indeksowanie
- Indeksy w bardzo dużych tabelach
- Klucze główne (kiedy złożone, na jakich polach)
Typy danych
- Kruczki w dobieraniu typów danych, poprawne użycie typów pól (int/float, czas, geolokalizacja) - korzyści, ograniczenia
- Czy primary key inny niż int jest dopuszczalny i tak samo wydajny?
- Czy każda tabela powinna mieć primary key?
- Transakcje - kiedy stosować, a kiedy nie - wady i zalety.
Optymalizacja systemu operacyjnego i wykorzystania sprzętu
- Najważniejsze parametry w my.cnf
Optymalizacja na poziomie aplikacyjnym
- Narzędzia optymalizacyjne
- Skrypty analizujące ustawienia i wyświetlające podpowiedzi
Replikacja bazy danych
- Replikacje, klastry - jak osiągać wysoką dostępność?
- Konfiguracja Replikacji (ROW/PAGE, rozwiazywanie problemów, odbudowa, monitorowanie/diagnozowanie procesu replikacji
MySQL Proxy vs. HAProxy
- Zasada działania, niezawodność(?),wady, zalety
MySQL Cluster
- Zasada działania
- Konfiguracja
- Wydajność
- Bezpieczeństwo
Cache
- Cache MySQL, tabele tymczasowe
- Czy warto przenosić relacje do baz danych, czy lepiej trzymać w kodzie?
- Subqueries & joins - czy stosować, jak optymalizować?
Explain jako pomoc przy testowaniu zapytań
- Korzystanie z indeksów przy budowaniu zapytań
- Profilowanie zapytań - jakie narzędzia, jak to robić efektywnie?
- Narzędzia do wizualnego projektowania - czy warto używać, czy raczej upraszczać struktury?
Dobre praktyki i konwencje nazewnictwa - kluczy, kolumn, indeksów, tabel
Budowanie optymalnych struktur tabel
- Triggery: dobre praktyki jeśli chodzi o trzymanie logiki w procedurach i triggerach - jak zarządzać, jak testować, kiedy opłaca się stosować?
- Wzorce i antywzorce projektowe
Czy warto przesiąść się na MariaDB?
Narzędzia do zarządzania
- MySQL Workbench
- Navicat
- Heidi SQL
Course Name Eng:
Zaawansowana administracja MySQL