MySQL

Book description

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!

Table of contents

  1. Opinie o książce
  2. Wprowadzenie
    1. Dla kogo jest przeznaczona ta książka?
    2. W jaki sposób jest zorganizowana ta książka?
      1. Rozpoczęcie pracy z MySQL
      2. Używanie MySQL
      3. MySQL w środowisku produkcyjnym
      4. Różne zagadnienia
    3. Konwencje zastosowane w książce
    4. Użycie przykładowych kodów
    5. Podziękowania
      1. Od Viniciusa Grippy
      2. Od Sergeya Kuzmicheva
  3. Część I Rozpoczęcie pracy z MySQL
  4. Rozdział 1. Instalowanie bazy danych MySQL
    1. Rozwidlenia MySQL
      1. MySQL Community Edition
      2. Percona Server for MySQL
      3. MariaDB Server
      4. MySQL Enterprise Edition
      5. Opcje instalacji i obsługiwane platformy
      6. 1. Pobranie dystrybucji MySQL przeznaczonej do instalacji
      7. 2. Instalacja dystrybucji MySQL
      8. 3. Przeprowadzanie niezbędnej konfiguracji
      9. 4. Przeprowadzanie testów wydajności działania
    2. Instalowanie MySQL w systemie Linux
      1. Instalowanie MySQL w dystrybucji CentOS 7
        1. Instalowanie serwera MySQL 8.0
        2. Instalowanie serwera MariaDB 10.5
        3. Instalowanie serwera Percona Server 8.0
        4. Instalowanie MySQL 5.7
        5. Instalowanie Percona Server 5.7
      2. Instalowanie MySQL w dystrybucji CentOS 8
        1. Instalowanie MySQL 8.0
        2. Instalowanie serwera Percona Server 8.0
        3. Instalowanie MySQL 5.7
      3. Instalowanie MySQL w systemie Ubuntu 20.04 LTS (Focal Fossa)
        1. Instalowanie MySQL 8.0
        2. Instalowanie serwera Percona Server 8.0
        3. Instalowanie serwera MariaDB 10.5
        4. Instalowanie MySQL 5.7
      4. Instalowanie serwera MySQL w systemie macOS Big Sur
        1. Instalowanie MySQL 8
      5. Instalowanie MySQL w Windows 10
    3. Zawartość katalogu MySQL
      1. Pliki domyślne w wydaniu MySQL 5.7
      2. Pliki domyślne w wydaniu MySQL 8.0
    4. Używanie interfejsu powłoki
    5. Używanie Dockera
      1. Instalowanie Dockera
        1. Instalowanie Dockera w dystrybucji CentOS 7
        2. Instalowanie Dockera w dystrybucji Ubuntu 20.04 (Focal Fossa)
        3. Wdrażanie kontenera MySQL
        4. Wdrażanie kontenerów MariaDB i Percona Server
    6. Używanie piaskownicy
      1. Instalowanie narzędzia DBdeployer
      2. Używanie narzędzia DBdeployer
    7. Uaktualnianie serwera MySQL
  5. Część II Używanie MySQL
  6. Rozdział 2. Modelowanie i projektowanie bazy danych
    1. Jak nie tworzyć projektu bazy danych
    2. Proces projektowania bazy danych
    3. Model relacji między encjami
      1. Przedstawianie encji
      2. Przedstawianie relacji
      3. Udział pełny i częściowy
      4. Encja czy atrybut?
      5. Encja czy relacja?
      6. Encje pośrednie
      7. Encje słabe i silne
    4. Normalizacja bazy danych
      1. Normalizacja przykładowej tabeli
      2. Pierwsza postać normalizacji — brak powtarzających się grup
      3. Druga postać normalizacji — wyeliminowanie zbędnych danych
      4. Trzecia postać normalizacji — wyeliminowanie danych niezależnych od klucza
      5. Przykłady modelowania relacji encji
    5. Używanie modelu relacji encji
      1. Mapowanie encji i relacji na tabele bazy danych
        1. Mapowanie encji na tabele bazy danych
        2. Mapowanie relacji do tabel bazy danych
      2. Utworzenie modelu ER bazy danych banku
        1. Relacje typu „wiele do wielu” (N:M)
        2. Relacja typu „jeden do wielu” (1:N)
      3. Konwersja modelu EER na bazę danych MySQL za pomocą oprogramowania MySQL Workbench
  7. Rozdział 3. Podstawy języka SQL
    1. Używanie bazy danych sakila
    2. Zapytanie SELECT i podstawowe techniki wykonywania zapytań
      1. Zapytanie SELECT dotyczące pojedynczej tabeli
      2. Wybór kolumn
      3. Wybieranie rekordów za pomocą klauzuli WHERE
        1. Podstawy pracy z klauzulą WHERE
        2. Łączenie warunków za pomocą AND, OR, NOT i XOR
      4. Klauzula ORDER BY
      5. Klauzula LIMIT
      6. Złączanie dwóch tabel
    3. Zapytanie INSERT
      1. Podstawy zapytania INSERT
      2. Składnie alternatywne
    4. Zapytanie DELETE
      1. Podstawy pracy z zapytaniem DELETE
      2. Używanie klauzul WHERE, ORDER BY i LIMIT
      3. Usuwanie wszystkich rekordów za pomocą zapytania TRUNCATE
    5. Zapytanie UPDATE
      1. Przykłady
      2. Używanie klauzul WHERE, ORDER BY i LIMIT
    6. Przeglądanie baz danych i tabel za pomocą zapytań SHOW i polecenia mysqlshow
  8. Rozdział 4. Praca ze strukturami bazy danych
    1. Tworzenie i używanie baz danych
    2. Tworzenie tabeli
      1. Podstawy
      2. Kodowanie znaków i ich kolejność
      3. Inne funkcjonalności
      4. Typy kolumn
        1. Typy w postaci liczb całkowitych
        2. Typy stałoprzecinkowe
        3. Typy zmiennoprzecinkowe
        4. Typy ciągów tekstowych
        5. Typy daty i godziny
        6. Inne typy
      5. Klucze i indeksy
      6. Funkcjonalność AUTO_INCREMENT
    3. Modyfikowanie struktury
      1. Dodawanie, usuwanie i modyfikowanie kolumn
      2. Dodawanie, usuwanie i modyfikowanie indeksów
      3. Zmienianie nazwy tabeli i modyfikowanie innych struktur
    4. Usuwanie struktur
      1. Usuwanie bazy danych
      2. Usuwanie tabel
  9. Rozdział 5. Zapytania zaawansowane
    1. Aliasy
      1. Alias kolumny
      2. Aliasy tabel
    2. Agregowanie danych
      1. Klauzula DISTINCT
      2. Klauzula GROUP BY
        1. Funkcje agregacji
      3. Klauzula HAVING
      4. Złączenia zaawansowane
        1. Klauzula INNER JOIN
        2. Unia
      5. Złączenia lewe i prawe
      6. Złączenie naturalne
      7. Wyrażenia stałych w złączeniach
    3. Zapytania zagnieżdżone
      1. Podstawy zapytań zagnieżdżonych
      2. Klauzule ANY, SOME, ALL, IN i NOT IN
        1. Używanie ANY i IN
        2. Używanie słowa kluczowego ALL
        3. Zapis podzapytania rekordu
      3. Klauzule EXISTS i NOT EXISTS
        1. Podstawy klauzul EXISTS i NOT EXISTS
        2. Podzapytanie skorelowane
      4. Zapytanie zagnieżdżone w klauzuli FROM
      5. Zapytanie zagnieżdżone w klauzuli JOIN
    4. Zmienne użytkownika
  10. Część III MySQL w środowisku produkcyjnym
  11. Rozdział 6. Transakcje i nakładanie blokad
    1. Poziomy izolacji
      1. REPEATABLE READ
      2. READ COMMITTED
      3. READ UNCOMMITTED
      4. SERIALIZABLE
      5. Nakładanie blokad
      6. Blokada metadanych
      7. Blokada rekordów
      8. Zakleszczenie
    2. Parametry MySQL powiązane z poziomami izolacji i blokadami
  12. Rozdział 7. Jak wycisnąć więcej z bazy danych MySQL?
    1. Wstawianie danych za pomocą zapytań
    2. Wczytywanie danych z pliku zawierającego wartości rozdzielone przecinkami
    3. Zapisywanie danych do pliku w formacie wartości rozdzielonych przecinkami
    4. Tworzenie tabeli za pomocą zapytań
    5. Uaktualnianie i usuwanie danych w wielu tabelach
      1. Usunięcie
      2. Uaktualnienia
    6. Zastępowanie danych
    7. Zapytanie EXPLAIN
    8. Alternatywne silniki bazy danych
      1. InnoDB
      2. MyISAM i Aria
      3. MyRocks i TokuDB
      4. Inne typy tabel
  13. Rozdział 8. Zarządzanie użytkownikami i uprawnieniami
    1. Poznajemy użytkowników i uprawnienia
    2. Użytkownik root
    3. Tworzenie nowego użytkownika i praca z nim
    4. Tabele uprawnień
    5. Zarządzanie użytkownikiem i rejestrowanie danych
    6. Modyfikowanie i usuwanie kont użytkowników
      1. Modyfikowanie konta użytkownika
      2. Usunięcie użytkownika
    7. Uprawnienia
      1. Uprawnienia statyczne kontra dynamiczne
      2. Uprawnienie SUPER
      3. Zapytania związane z zarządzaniem uprawnieniami
        1. GRANT
        2. REVOKE
      4. Sprawdzanie uprawnień
      5. Uprawnienie GRANT OPTION
    8. Role
    9. Zmiana hasła użytkownika root i niebezpieczny rozruch
    10. Podpowiedzi dotyczące bezpiecznego rozruchu
  14. Rozdział 9. Używanie plików opcji
    1. Struktura pliku opcji
    2. Zasięg opcji
    3. Kolejność wyszukiwania dla plików opcji
    4. Specjalne pliki opcji
      1. Lokalny plik konfiguracyjny
      2. Plik konfiguracyjny trwale przechowywanych zmiennych systemowych
    5. Ustalanie efektu użycia opcji
  15. Rozdział 10. Kopia zapasowa i odzyskiwanie danych po awarii
    1. Fizyczna i logiczna kopia zapasowa
      1. Logiczna kopia zapasowa
      2. Fizyczna kopia zapasowa
      3. Ogólne omówienie logicznej i fizycznej kopii zapasowej
    2. Replikacja jako narzędzie kopii zapasowej
      1. Awaria infrastruktury
      2. Błąd we wdrożeniu
    3. Program mysqldump
      1. Przygotowanie replikacji za pomocą mysqldump
    4. Wczytywanie danych z pliku SQL kopii zapasowej
    5. mysqlpump
    6. mydumper i myloader
    7. Zimna kopia zapasowa i migawki systemu plików
    8. Percona XtraBackup
      1. Tworzenie kopii zapasowej i przywracanie z niej danych
      2. Funkcje zaawansowane
      3. Tworzenie za pomocą XtraBackup przyrostowej kopii zapasowej
    9. Inne narzędzia do tworzenia fizycznej kopii zapasowej
      1. MySQL Enterprise Backup
      2. mariabackup
    10. Przywracanie do pewnego momentu w czasie
    11. Informacje techniczne dotyczące binarnych dzienników zdarzeń
      1. Pozostawienie binarnych dzienników zdarzeń
      2. Identyfikowanie celu dla przywracania do pewnego momentu w czasie
      3. Przykład przywracania do pewnego momentu w czasie — XtraBackup
      4. Przykład przywracania do pewnego momentu w czasie — mysqldump
    12. Eksportowanie i importowanie przestrzeni tabel InnoDB
      1. Szczegóły techniczne
      2. Eksportowanie przestrzeni tabeli
      3. Importowanie przestrzeni tabeli
      4. Przywracanie pojedynczej tabeli za pomocą narzędzia XtraBackup
    13. Testowanie i weryfikowanie kopii zapasowej
    14. Wprowadzenie do strategii tworzenia kopii zapasowej bazy danych
  16. Rozdział 11. Konfigurowanie i dostrajanie serwera
    1. Demon serwera MySQL
    2. Zmienne serwera MySQL
      1. Sprawdzanie ustawień serwera
      2. Najlepsze praktyki
        1. Najlepsze praktyki dotyczące systemu operacyjnego
        2. Najlepsze praktyki w MySQL
  17. Część IV Różne zagadnienia
  18. Rozdział 12. Monitorowanie bazy danych MySQL
    1. Wskaźniki systemu operacyjnego
      1. Procesor
      2. Dysk
      3. Pamięć
      4. Sieć
    2. Obserwacja serwera MySQL
      1. Zmienne systemowe
      2. Podstawowe rozwiązania w zakresie monitorowania
        1. Dostępność serwera MySQL
        2. Połączenia klientów
        3. Liczniki zapytania
        4. Typ i jakość zapytania
        5. Wskaźniki transakcji i operacji wejścia-wyjścia InnoDB
      3. Dziennik zdarzeń wolno wykonywanych zapytań
      4. Raport stanu silnika InnoDB
    3. Metody analizy
      1. Metoda USE
      2. Metoda RED
    4. Narzędzia do monitorowania MySQL
    5. Incydenty, diagnostyka i ręczne zbieranie danych
      1. Okresowe pobieranie wartości systemowych zmiennych stanu
      2. Używanie pt-stalk do zbierania wskaźników dotyczących MySQL i systemu operacyjnego
      3. Rozszerzona procedura ręcznego zbierania danych
  19. Rozdział 13. Zapewnianie wysokiej dostępności
    1. Replikacja asynchroniczna
      1. Podstawowe parametry do zdefiniowania w źródle i replice
      2. Tworzenie repliki za pomocą Percona XtraBackup
      3. Tworzenie repliki za pomocą wtyczki klonowania
      4. Tworzenie repliki za pomocą mysqldump
      5. Tworzenie repliki za pomocą mydumper i myloader
        1. Konfiguracja narzędzi mydumper i myloader
        2. Wyodrębnianie danych ze źródła
        3. Przywracanie danych w serwerze repliki
        4. Uruchomienie replikacji
      6. Wtyczka Group Replication
        1. Instalacja wtyczki Group Replication
        2. Konfigurowanie MySQL Group Replication
    2. Replikacja synchroniczna
      1. Klaster Galera/PCX
  20. Rozdział 14. MySQL w chmurze
    1. Bazy danych jako usługa (DBaaS)
      1. Amazon RDS dla MySQL/MariaDB
      2. Azure SQL
    2. Amazon Aurora
    3. Egzemplarze MySQL w chmurze
    4. MySQL w Kubernetes
      1. Wdrażanie Percona XtraDB Cluster w Kubernetes
  21. Rozdział 15. Mechanizm równoważenia obciążenia w bazie danych MySQL
    1. Mechanizm równoważenia obciążenia i sterownik aplikacji
    2. Mechanizm równoważenia obciążenia ProxySQL
      1. Instalowanie i konfigurowanie ProxySQL
    3. Mechanizm równoważenia obciążenia HAProxy
      1. Instalowanie i konfigurowanie HAProxy
    4. Router MySQL
  22. Rozdział 16. Różne zagadnienia związane z MySQL
    1. Powłoka MySQL
      1. Instalowanie powłoki MySQL
      2. Instalowanie powłoki MySQL w Ubuntu 20.04 Focal Fossa
      3. Instalowanie powłoki MySQL w CentOS 8
      4. Wdrażanie za pomocą powłoki MySQL odizolowanego klastra InnoDB
      5. Narzędzia powłoki MySQL
        1. util.dumpInstance()
        2. util.dumpSchemas()
        3. util.dumpTables()
        4. util.loadDump(url[, opcje])
    2. Wykres typu flame graph
    3. Kompilacja MySQL na podstawie kodu źródłowego
      1. Kompilacja MySQL dla dystrybucji Ubuntu Focal Fossa i procesorów ARM
    4. Analiza awarii MySQL
    5. O autorach
    6. Kolofon

Product information

  • Title: MySQL
  • Author(s): Vinicius M. Grippa
  • Release date: August 2022
  • Publisher(s): Helion
  • ISBN: 9788328389618