MySQL. Jak zaprojektować i wdrożyć wydajną bazę danych. Wydanie 2 - ebook
MySQL. Jak zaprojektować i wdrożyć wydajną bazę danych. Wydanie 2 - ebook
Wymagania względem baz danych stale rosną, co jest związane z dostępnością coraz większych ilości danych. Obserwujemy więc dynamiczny rozwój różnych systemów bazodanowych. Mimo że w tej branży pojawia się sporo nowych propozycji, relacyjne bazy danych wciąż cieszą się dużą popularnością. Spośród rozwiązań typu open source najbardziej znaną i lubianą bazą danych od lat pozostaje MySQL. Jest to oprogramowanie, które świetnie się sprawdza nawet w systemach operujących na dużych ilościach danych.
W tym gruntownie zaktualizowanym przewodniku znalazły się dokładne informacje dotyczące konfiguracji MySQL w takich systemach jak Linux, Windows i macOS, jak również w kontenerze Dockera. Przedstawiono tutaj zasady projektowania baz danych, a także modyfikowania już istniejących. Opisano techniki pracy w obciążonym środowisku produkcyjnym, pokazano też, jak stosować mechanizm transakcji i reguły zarządzania użytkownikami. Omówiono sposoby uzyskiwania wysokiej wydajności działania i dostępności serwera przy minimalnych kosztach. Zademonstrowano, jak dostrajać i zabezpieczać bazy, jak pracować z kopiami zapasowymi, wreszcie ... jak używać plików konfiguracyjnych. W tym wydaniu pojawiły się nowe rozdziały poświęcone wysokiej dostępności serwera, mechanizmu równoważenia obciążenia i używania MySQL w chmurze.
W książce między innymi:
- gruntowne podstawy MySQL
- wdrażanie bazy danych MySQL, również w maszynach wirtualnych i w chmurze
- projektowanie bazy danych i tworzenie zapytań
- monitorowanie bazy danych i praca z kopiami zapasowymi
- optymalizacja kosztów używania bazy danych w chmurze
- koncepcje związane z bazami danych
MySQL: dane zawsze gotowe do akcji!
Spis treści
Wprowadzenie
Część I. Rozpoczęcie pracy z MySQL
- 1. Instalowanie bazy danych MySQL
- Rozwidlenia MySQL
- MySQL Community Edition
- Percona Server for MySQL
- MariaDB Server
- MySQL Enterprise Edition
- Opcje instalacji i obsługiwane platformy
- 1. Pobranie dystrybucji MySQL przeznaczonej do instalacji
- 2. Instalacja dystrybucji MySQL
- 3. Przeprowadzanie niezbędnej konfiguracji
- 4. Przeprowadzanie testów wydajności działania
- Instalowanie MySQL w systemie Linux
- Instalowanie MySQL w dystrybucji CentOS 7
- Instalowanie MySQL w dystrybucji CentOS 8
- Instalowanie MySQL w systemie Ubuntu 20.04 LTS (Focal Fossa)
- Instalowanie serwera MySQL w systemie macOS Big Sur
- Instalowanie MySQL w Windows 10
- Zawartość katalogu MySQL
- Pliki domyślne w wydaniu MySQL 5.7
- Pliki domyślne w wydaniu MySQL 8.0
- Używanie interfejsu powłoki
- Używanie Dockera
- Instalowanie Dockera
- Używanie piaskownicy
- Uaktualnianie serwera MySQL
- Rozwidlenia MySQL
Część II. Używanie MySQL
- 2. Modelowanie i projektowanie bazy danych
- Jak nie tworzyć projektu bazy danych
- Proces projektowania bazy danych
- Model relacji między encjami
- Przedstawianie encji
- Przedstawianie relacji
- Udział pełny i częściowy
- Encja czy atrybut?
- Encja czy relacja?
- Encje pośrednie
- Encje słabe i silne
- Normalizacja bazy danych
- Normalizacja przykładowej tabeli
- Pierwsza postać normalizacji - brak powtarzających się grup
- Druga postać normalizacji - wyeliminowanie zbędnych danych
- Trzecia postać normalizacji - wyeliminowanie danych niezależnych od klucza
- Przykłady modelowania relacji encji
- Używanie modelu relacji encji
- Mapowanie encji i relacji na tabele bazy danych
- Utworzenie modelu ER bazy danych banku
- Konwersja modelu EER na bazę danych MySQL za pomocą oprogramowania MySQL Workbench
- 3. Podstawy języka SQL
- Używanie bazy danych sakila
- Zapytanie SELECT i podstawowe techniki wykonywania zapytań
- Zapytanie SELECT dotyczące pojedynczej tabeli
- Wybór kolumn
- Wybieranie rekordów za pomocą klauzuli WHERE
- Klauzula ORDER BY
- Klauzula LIMIT
- Złączanie dwóch tabel
- Zapytanie INSERT
- Podstawy zapytania INSERT
- Składnie alternatywne
- Zapytanie DELETE
- Podstawy pracy z zapytaniem DELETE
- Używanie klauzul WHERE, ORDER BY i LIMIT
- Usuwanie wszystkich rekordów za pomocą zapytania TRUNCATE
- Zapytanie UPDATE
- Przykłady
- Używanie klauzul WHERE, ORDER BY i LIMIT
- Przeglądanie baz danych i tabel za pomocą zapytań SHOW i polecenia mysqlshow
- 4. Praca ze strukturami bazy danych
- Tworzenie i używanie baz danych
- Tworzenie tabeli
- Podstawy
- Kodowanie znaków i ich kolejność
- Inne funkcjonalności
- Typy kolumn
- Klucze i indeksy
- Funkcjonalność AUTO_INCREMENT
- Modyfikowanie struktury
- Dodawanie, usuwanie i modyfikowanie kolumn
- Dodawanie, usuwanie i modyfikowanie indeksów
- Zmienianie nazwy tabeli i modyfikowanie innych struktur
- Usuwanie struktur
- Usuwanie bazy danych
- Usuwanie tabel
- 5. Zapytania zaawansowane
- Aliasy
- Alias kolumny
- Aliasy tabel
- Agregowanie danych
- Klauzula DISTINCT
- Klauzula GROUP BY
- Klauzula HAVING
- Złączenia zaawansowane
- Złączenia lewe i prawe
- Złączenie naturalne
- Wyrażenia stałych w złączeniach
- Zapytania zagnieżdżone
- Podstawy zapytań zagnieżdżonych
- Klauzule ANY, SOME, ALL, IN i NOT IN
- Klauzule EXISTS i NOT EXISTS
- Zapytanie zagnieżdżone w klauzuli FROM
- Zapytanie zagnieżdżone w klauzuli JOIN
- Zmienne użytkownika
- Aliasy
Część III. MySQL w środowisku produkcyjnym
- 6. Transakcje i nakładanie blokad
- Poziomy izolacji
- REPEATABLE READ
- READ COMMITTED
- READ UNCOMMITTED
- SERIALIZABLE
- Nakładanie blokad
- Blokada metadanych
- Blokada rekordów
- Zakleszczenie
- Parametry MySQL powiązane z poziomami izolacji i blokadami
- Poziomy izolacji
- 7. Jak wycisnąć więcej z bazy danych MySQL?
- Wstawianie danych za pomocą zapytań
- Wczytywanie danych z pliku zawierającego wartości rozdzielone przecinkami
- Zapisywanie danych do pliku w formacie wartości rozdzielonych przecinkami
- Tworzenie tabeli za pomocą zapytań
- Uaktualnianie i usuwanie danych w wielu tabelach
- Usunięcie
- Uaktualnienia
- Zastępowanie danych
- Zapytanie EXPLAIN
- Alternatywne silniki bazy danych
- InnoDB
- MyISAM i Aria
- MyRocks i TokuDB
- Inne typy tabel
- 8. Zarządzanie użytkownikami i uprawnieniami
- Poznajemy użytkowników i uprawnienia
- Użytkownik root
- Tworzenie nowego użytkownika i praca z nim
- Tabele uprawnień
- Zarządzanie użytkownikiem i rejestrowanie danych
- Modyfikowanie i usuwanie kont użytkowników
- Modyfikowanie konta użytkownika
- Usunięcie użytkownika
- Uprawnienia
- Uprawnienia statyczne kontra dynamiczne
- Uprawnienie SUPER
- Zapytania związane z zarządzaniem uprawnieniami
- Sprawdzanie uprawnień
- Uprawnienie GRANT OPTION
- Role
- Zmiana hasła użytkownika root i niebezpieczny rozruch
- Podpowiedzi dotyczące bezpiecznego rozruchu
- 9. Używanie plików opcji
- Struktura pliku opcji
- Zasięg opcji
- Kolejność wyszukiwania dla plików opcji
- Specjalne pliki opcji
- Lokalny plik konfiguracyjny
- Plik konfiguracyjny trwale przechowywanych zmiennych systemowych
- Ustalanie efektu użycia opcji
- 10. Kopia zapasowa i odzyskiwanie danych po awarii
- Fizyczna i logiczna kopia zapasowa
- Logiczna kopia zapasowa
- Fizyczna kopia zapasowa
- Ogólne omówienie logicznej i fizycznej kopii zapasowej
- Replikacja jako narzędzie kopii zapasowej
- Awaria infrastruktury
- Błąd we wdrożeniu
- Program mysqldump
- Przygotowanie replikacji za pomocą mysqldump
- Wczytywanie danych z pliku SQL kopii zapasowej
- mysqlpump
- mydumper i myloader
- Zimna kopia zapasowa i migawki systemu plików
- Percona XtraBackup
- Tworzenie kopii zapasowej i przywracanie z niej danych
- Funkcje zaawansowane
- Tworzenie za pomocą XtraBackup przyrostowej kopii zapasowej
- Inne narzędzia do tworzenia fizycznej kopii zapasowej
- MySQL Enterprise Backup
- mariabackup
- Przywracanie do pewnego momentu w czasie
- Informacje techniczne dotyczące binarnych dzienników zdarzeń
- Pozostawienie binarnych dzienników zdarzeń
- Identyfikowanie celu dla przywracania do pewnego momentu w czasie
- Przykład przywracania do pewnego momentu w czasie - XtraBackup
- Przykład przywracania do pewnego momentu w czasie - mysqldump
- Eksportowanie i importowanie przestrzeni tabel InnoDB
- Szczegóły techniczne
- Eksportowanie przestrzeni tabeli
- Importowanie przestrzeni tabeli
- Przywracanie pojedynczej tabeli za pomocą narzędzia XtraBackup
- Testowanie i weryfikowanie kopii zapasowej
- Wprowadzenie do strategii tworzenia kopii zapasowej bazy danych
- Fizyczna i logiczna kopia zapasowa
- 11. Konfigurowanie i dostrajanie serwera
- Demon serwera MySQL
- Zmienne serwera MySQL
- Sprawdzanie ustawień serwera
- Najlepsze praktyki
Część IV. Różne zagadnienia
- 12. Monitorowanie bazy danych MySQL
- Wskaźniki systemu operacyjnego
- Procesor
- Dysk
- Pamięć
- Sieć
- Obserwacja serwera MySQL
- Zmienne systemowe
- Podstawowe rozwiązania w zakresie monitorowania
- Dziennik zdarzeń wolno wykonywanych zapytań
- Raport stanu silnika InnoDB
- Metody analizy
- Metoda USE
- Metoda RED
- Narzędzia do monitorowania MySQL
- Incydenty, diagnostyka i ręczne zbieranie danych
- Okresowe pobieranie wartości systemowych zmiennych stanu
- Używanie pt-stalk do zbierania wskaźników dotyczących MySQL i systemu operacyjnego
- Rozszerzona procedura ręcznego zbierania danych
- Wskaźniki systemu operacyjnego
- 13. Zapewnianie wysokiej dostępności
- Replikacja asynchroniczna
- Podstawowe parametry do zdefiniowania w źródle i replice
- Tworzenie repliki za pomocą Percona XtraBackup
- Tworzenie repliki za pomocą wtyczki klonowania
- Tworzenie repliki za pomocą mysqldump
- Tworzenie repliki za pomocą mydumper i myloader
- Wtyczka Group Replication
- Replikacja synchroniczna
- Klaster Galera/PCX
- Replikacja asynchroniczna
- 14. MySQL w chmurze
- Bazy danych jako usługa (DBaaS)
- Amazon RDS dla MySQL/MariaDB
- Azure SQL
- Amazon Aurora
- Egzemplarze MySQL w chmurze
- MySQL w Kubernetes
- Wdrażanie Percona XtraDB Cluster w Kubernetes
- Bazy danych jako usługa (DBaaS)
- 15. Mechanizm równoważenia obciążenia w bazie danych MySQL
- Mechanizm równoważenia obciążenia i sterownik aplikacji
- Mechanizm równoważenia obciążenia ProxySQL
- Instalowanie i konfigurowanie ProxySQL
- Mechanizm równoważenia obciążenia HAProxy
- Instalowanie i konfigurowanie HAProxy
- Router MySQL
- 16. Różne zagadnienia związane z MySQL
- Powłoka MySQL
- Instalowanie powłoki MySQL
- Instalowanie powłoki MySQL w Ubuntu 20.04 Focal Fossa
- Instalowanie powłoki MySQL w CentOS 8
- Wdrażanie za pomocą powłoki MySQL odizolowanego klastra InnoDB
- Narzędzia powłoki MySQL
- Wykres typu flame graph
- Kompilacja MySQL na podstawie kodu źródłowego
- Kompilacja MySQL dla dystrybucji Ubuntu Focal Fossa i procesorów ARM
- Analiza awarii MySQL
- Powłoka MySQL
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-8961-8 |
Rozmiar pliku: | 9,1 MB |