1. Livres et vidéos
  2. MySQL 8 - Administration et optimisation

MySQL 8 Administration et optimisation

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

Ce livre sur MySQL 8.0 s'adresse aux développeurs et administrateurs MySQL désireux de consolider leurs connaissances sur le SGBD Open Source le plus répandu du marché.

Le livre débute par une présentation des bases qui vous seront nécessaires pour exploiter au mieux toutes les capacités de MySQL : présentation des spécificités du serveur (architecture et principaux moteurs de stockage), méthodes d'installation mono et multi-instances pour la production et pour le développement, bonnes pratiques de configuration.

Après ces fondamentaux vous donnant une bonne compréhension des spécificités du SGBD, vous apprendrez comment gérer votre serveur au quotidien en ayant à l'esprit les principes essentiels de sécurité et en mettant en place des stratégies efficaces de sauvegarde et de restauration.

La dernière partie est consacrée aux techniques avancées qui vous donneront les clés pour résoudre les problèmes les plus complexes : optimisation des index et des requêtes, amélioration de la disponibilité et des performances avec la réplication, utilisation de MySQL comme système NoSQL, partitionnement, fonctions de fenêtrage ou encore techniques de surveillance de l'état du SGBD.

Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.com.


Les chapitres du livre :
Avant-propos – Généralités sur MySQL – Installation du serveur – Configuration du serveur – Sécurité et gestion des utilisateurs – Sauvegarde et restauration – Optimisation – Réplication – Haute disponibilité – Support JSON et Document Store – Autres fonctionnalités – Outils de surveillance



Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Table des matières

  • Avant-propos
    • 1. MySQL en quelques mots
    • 2. Objectifs du livre
    • 3. Description
  • Généralités sur MySQL
    • 1. Introduction
    • 2. Architecture
      • 2.1 Le serveur et les clients
      • 2.2 Les protocoles de communication
    • 3. Utilisation des ressources matérielles
      • 3.1 Utilisation du disque
      • 3.2 Utilisation de la mémoire
      • 3.3 Utilisation du processeur
      • 3.4 Utilisation du réseau
    • 4. Variantes de MySQL
      • 4.1 MariaDB
      • 4.2 Percona Server
      • 4.3 Amazon RDS/Aurora
      • 4.4 Galera
    • 5. Les moteurs de stockage
      • 5.1 InnoDB
        • 5.1.1 Fonctionnement résumé
        • 5.1.2 Fonctionnalités principales
      • 5.2 MyISAM
      • 5.3 Memory
      • 5.4 Archive
      • 5.5 XtraDB
      • 5.6 TokuDB
      • 5.7 RocksDB
      • 5.8 Autres moteurs
    • 6. Verrous et transactions
      • 6.1 Verrous implicites
        • 6.1.1 Généralités
        • 6.1.2 Spécificités InnoDB
      • 6.2 Verrous explicites
        • 6.2.1 Verrous de tables
        • 6.2.2 Spécificités InnoDB
        • 6.2.3 Modificateurs SKIP LOCKED et NOWAIT
      • 6.3 Verrous coopératifs
      • 6.4 Transactions
        • 6.4.1 Généralités
        • 6.4.2 InnoDB et les transactions
        • 6.4.3 Mêler moteur transactionnel et moteur non transactionnel
        • 6.4.4 Interblocages (deadlocks)
  • Installation du serveur
    • 1. Généralités
      • 1.1 Stabilité des versions
      • 1.2 Version communautaire et version Enterprise
      • 1.3 Cycle de développement
      • 1.4 Choix du type d'installation
    • 2. Installation sous Linux/UNIX
      • 2.1 Installation par gestionnaire de paquets
      • 2.2 Installation avec les binaires précompilés
      • 2.3 Démarrage du serveur
        • 2.3.1 Script mysql.server
        • 2.3.2 Script mysqld_safe
        • 2.3.3 Invocation directe de mysqld
      • 2.4 Arrêt du serveur
        • 2.4.1 systemd
        • 2.4.2 Script mysql.server
        • 2.4.3 mysqladmin
        • 2.4.4 Commande kill
      • 2.5 Résolution de problèmes d'installation courants
        • 2.5.1 Erreurs InnoDB
        • 2.5.2 Fichier errmsg.sys introuvable
      • 2.6 Sécurisation de l'installation
      • 2.7 Installation de plusieurs instances
        • 2.7.1 Précautions à prendre
        • 2.7.2 Installation de versions différentes
        • 2.7.3 Utilisation du même binaire qu'une autre instance
        • 2.7.4 Démarrage et arrêt des instances avec mysqld_multi
    • 3. Installation sous Windows
      • 3.1 Utilisation de l'installeur
      • 3.2 Installation avec les binaires
      • 3.3 Démarrage du serveur
        • 3.3.1 Service
        • 3.3.2 Invocation directe de mysqld
      • 3.4 Arrêt du serveur
        • 3.4.1 Service
        • 3.4.2 mysqladmin
        • 3.4.3 Gestionnaire des tâches
      • 3.5 Résolution des problèmes d'installation
        • 3.5.1 Droits insuffisants
        • 3.5.2 Conflit avec une installation existante
        • 3.5.3 Problèmes dans les chemins
      • 3.6 Sécurisation de l'installation
      • 3.7 Installation de plusieurs instances
        • 3.7.1 Précautions à prendre
        • 3.7.2 Versions différentes
        • 3.7.3 Utilisation du même binaire
    • 4. Installations de test avec Docker
      • 4.1 Introduction
      • 4.2 Installation
      • 4.3 Utilisation
    • 5. Mise à jour de MySQL
      • 5.1 Précautions à prendre avant la mise à jour
        • 5.1.1 Sauts de version
        • 5.1.2 Changements apportés par une version
        • 5.1.3 Sauvegarde des données
      • 5.2 Processus de mise à jour
        • 5.2.1 Stratégies possibles
        • 5.2.2 Mise à jour des binaires
        • 5.2.3 Vérification des tables
      • 5.3 Vérifications après la mise à jour
    • 6. Installation des outils utilisés dans l’ouvrage
      • 6.1 Installation de la base world
      • 6.2 Installation de la base sakila
    • 7. Installation du Percona Toolkit
  • Configuration du serveur
    • 1. Introduction
    • 2. Généralités
      • 2.1 Fichier de configuration
      • 2.2 Structure du fichier de configuration
      • 2.3 Paramétrage dynamique du serveur
        • 2.3.1 Changement pour la session
        • 2.3.2 Changement global
    • 3. Visualisation de la configuration
    • 4. Configuration d’InnoDB
      • 4.1 Paramètres essentiels
      • 4.2 Isolation et durabilité
        • 4.2.1 Réglage de l’isolation
        • 4.2.2 Réglage de la durabilité
      • 4.3 Autres paramètres
    • 5. La journalisation
      • 5.1 Le journal binaire
      • 5.2 Le journal des requêtes lentes
      • 5.3 Le journal des erreurs
      • 5.4 Le journal général
      • 5.5 Rotation des journaux
      • 5.6 Bonnes pratiques
        • 5.6.1 Configuration
        • 5.6.2 Surveiller l’utilisation du disque
        • 5.6.3 Impact sur les performances
    • 6. Le mode SQL
      • 6.1 Les modes usuels
      • 6.2 Les combinaisons de modes
      • 6.3 Mode SQL par défaut
    • 7. Autres paramètres à configurer
      • 7.1 Autres variables
        • 7.1.1 Nombre de connexions simultanées
        • 7.1.2 Caches de table
        • 7.1.3 Cache de threads
        • 7.1.4 Paramètres MyISAM
      • 7.2 Paramètres à ne pas modifier
  • Sécurité et gestion des utilisateurs
    • 1. Introduction
    • 2. Sécurisation du serveur
      • 2.1 Sécurisation de l'installation
        • 2.1.1 Contrôler les droits
        • 2.1.2 Ajouter un mot de passe au compte utilisateur root
        • 2.1.3 Supprimer les comptes anonymes
        • 2.1.4 Supprimer le schéma test
        • 2.1.5 Sécuriser votre installation avec l’outil mysql_secure_installation
      • 2.2 Chiffrement des données
      • 2.3 Utilisation de SSL/TLS
      • 2.4 Options liées à la sécurité
        • 2.4.1 skip-networking
        • 2.4.2 bind-address
        • 2.4.3 skip-name-resolve
        • 2.4.4 skip-show-database
        • 2.4.5 secure-file-priv
    • 3. Gestion des comptes utilisateurs
      • 3.1 Introduction
      • 3.2 Comptes utilisateurs
        • 3.2.1 Créer un compte
        • 3.2.2 Modifier le mot de passe
        • 3.2.3 Utilitaire de configuration des mots de passe
        • 3.2.4 Récupérer le mot de passe administrateur
      • 3.3 Rôles
      • 3.4 Attribution des droits
        • 3.4.1 Les droits d’administration
        • 3.4.2 Les droits au niveau des schémas
        • 3.4.3 Les droits au niveau des tables
        • 3.4.4 Les droits au niveau des colonnes
        • 3.4.5 Les droits pour les routines stockées
        • 3.4.6 Limitation de l’utilisation des ressources
        • 3.4.7 Visualisation des droits
        • 3.4.8 Prise d’effet des droits
        • 3.4.9 Suppression des droits
        • 3.4.10 Bonnes pratiques de la gestion des droits
        • 3.4.11 Sécurisation des vues et des routines stockées
    • 4. Plugins de sécurité avancée
      • 4.1 Validation des mots de passe
      • 4.2 Expiration du mot de passe
      • 4.3 Contrôle des connexions
  • Sauvegarde et restauration
    • 1. Généralités
      • 1.1 Introduction
      • 1.2 Différents types de sauvegarde
        • 1.2.1 Sauvegarde logique
        • 1.2.2 Sauvegarde physique
        • 1.2.3 Sauvegarde complète/incrémentale
      • 1.3 Autres facteurs influençant la sauvegarde
        • 1.3.1 Réplication
        • 1.3.2 Moteurs de stockage
        • 1.3.3 Utilisation combinée de MyISAM et InnoDB
      • 1.4 Restauration
    • 2. En pratique
      • 2.1 Import/export manuel
      • 2.2 mysqldump
      • 2.3 Percona XtraBackup
      • 2.4 Autres solutions
        • 2.4.1 mysqlpump
        • 2.4.2 mydumper
        • 2.4.3 Snapshots (clichés)
  • Optimisation
    • 1. Matériel et système d'exploitation
      • 1.1 Processeur
      • 1.2 Mémoire vive
      • 1.3 Disque dur
        • 1.3.1 Éléments de choix
        • 1.3.2 RAID
        • 1.3.3 SSD
      • 1.4 Système d'exploitation
    • 2. Optimisation du schéma
      • 2.1 Types de données
        • 2.1.1 Principes généraux
        • 2.1.2 Nombres
        • 2.1.3 Chaînes de caractères
        • 2.1.4 Données binaires
        • 2.1.5 Dates et heures
        • 2.1.6 ENUM et SET
        • 2.1.7 JSON
      • 2.2 Normalisation
        • 2.2.1 Rôle de la normalisation
        • 2.2.2 Première forme normale
        • 2.2.3 Deuxième forme normale
        • 2.2.4 Troisième forme normale
        • 2.2.5 Résumé des avantages de la normalisation
        • 2.2.6 Inconvénients de la normalisation
      • 2.3 Dénormalisation
      • 2.4 Modification du schéma en production
    • 3. Indexation
      • 3.1 Généralités sur les index
        • 3.1.1 Rôle d'un index
        • 3.1.2 Clés et index
        • 3.1.3 Colonnes pouvant bénéficier d'un index
        • 3.1.4 Création/suppression d'un index
        • 3.1.5 Quelles colonnes indexer ?
      • 3.2 Types d'index
        • 3.2.1 Index uniques
        • 3.2.2 Clés primaires
        • 3.2.3 Index non uniques
        • 3.2.4 Index sur plusieurs colonnes
        • 3.2.5 Index sur un préfixe de colonne
        • 3.2.6 Index redondants
        • 3.2.7 Clés étrangères
        • 3.2.8 Index invisibles
      • 3.3 Notions avancées
        • 3.3.1 Index B-Tree
        • 3.3.2 Index hash
        • 3.3.3 Autres algorithmes d'indexation
        • 3.3.4 Sélectivité et distribution des valeurs
        • 3.3.5 Index cluster InnoDB
        • 3.3.6 Index couvrant
    • 4. La commande EXPLAIN
      • 4.1 Rôle
      • 4.2 Accès aux données
        • 4.2.1 Accès séquentiel ou aléatoire
        • 4.2.2 Accès en mémoire ou sur disque
        • 4.2.3 En résumé
      • 4.3 Lire le plan d'exécution
        • 4.3.1 Exemple simple
        • 4.3.2 Jointures
        • 4.3.3 Unions
        • 4.3.4 Sous-requêtes
      • 4.4 Colonnes principales
        • 4.4.1 Types d'accès aux données
        • 4.4.2 Index examinés
        • 4.4.3 Nombre de lignes parcourues
        • 4.4.4 La colonne filtered
        • 4.4.5 La colonne Extra
      • 4.5 EXPLAIN EXTENDED
    • 5. Optimisation des requêtes
      • 5.1 Isolation des colonnes
      • 5.2 Jointures
      • 5.3 Filtrages
      • 5.4 Tris
      • 5.5 Agrégations
      • 5.6 Réécriture de requêtes
      • 5.7 Utilisation de plusieurs index
      • 5.8 Autres techniques
    • 6. Autres optimisations
      • 6.1 Index Condition Pushdown
      • 6.2 Multi Range Read
    • 7. Maintenance des tables
      • 7.1 Mise à jour des statistiques d’index
      • 7.2 Défragmentation des tables
      • 7.3 Autres commandes
  • Réplication
    • 1. Généralités sur la réplication
      • 1.1 Utilité de la réplication
      • 1.2 Fonctionnement de la réplication
      • 1.3 Formats de réplication
    • 2. Mise en place de la réplication
      • 2.1 Réplication maître-esclave(s)
        • 2.1.1 Configuration
        • 2.1.2 Forces et faiblesses de cette configuration
      • 2.2 Réplication maître-maître
        • 2.2.1 Configuration
        • 2.2.2 Forces et faiblesses de cette configuration
      • 2.3 Réplication sur plusieurs niveaux
        • 2.3.1 Configuration
        • 2.3.2 Forces et faiblesses de cette configuration
      • 2.4 Principales variables
    • 3. Résolution des problèmes opérationnels courants
      • 3.1 Empêcher la réplication de certaines requêtes
      • 3.2 Non-réplication d’une requête
      • 3.3 Éviter le retard de réplication
      • 3.4 Corriger une erreur de réplication
      • 3.5 Récupérer l’espace disque des journaux binaires
      • 3.6 Supprimer la configuration de réplication
      • 3.7 Vérifier la cohérence des données entre maître et esclaves
      • 3.8 Quelques commandes utiles
        • 3.8.1 SHOW SLAVE STATUS
        • 3.8.2 START/STOP SLAVE {IO_THREAD|SQL_THREAD}
        • 3.8.3 RESET MASTER
    • 4. Réplication et scalabilité
      • 4.1 Scalabilité en lecture
      • 4.2 Scalabilité en écriture
    • 5. Fonctionnalités avancées
      • 5.1 Identifiants de transaction
      • 5.2 Réplication parallèle
      • 5.3 Réplication multisource
        • 5.3.1 Introduction
        • 5.3.2 Mise en place
      • 5.4 Réplication semi-synchrone
        • 5.4.1 Introduction
        • 5.4.2 Mise en place
        • 5.4.3 Améliorations à partir de MySQL 5.7
      • 5.5 Réplication retardée
  • Haute disponibilité
    • 1. Introduction
    • 2. Utilisation de la réplication classique
      • 2.1 Mécanisme de promotion d’un esclave
      • 2.2 Automatisation de la promotion
    • 3. Réplication de groupe et InnoDB Cluster
      • 3.1 Introduction
      • 3.2 Bénéfices/limitations
      • 3.3 Réplication virtuellement synchrone
      • 3.4 Écritures sur plusieurs nœuds
      • 3.5 Le flow control
      • 3.6 Choix du nombre de nœuds
      • 3.7 Nœuds géographiquement éloignés
      • 3.8 Mise en place
      • 3.9 InnoDB Cluster
  • Support JSON et Document Store
    • 1. Colonnes générées
      • 1.1 Introduction
      • 1.2 Colonnes virtuelles
      • 1.3 Colonnes persistantes
    • 2. Support JSON
      • 2.1 Le type de données JSON
    • 3. Exemple d’opérations sur des colonnes JSON
      • 3.1 Indexation
    • 4. Document Store
      • 4.1 SQL et NoSQL
      • 4.2 Installation et vocabulaire associé
        • 4.2.1 Installation du Document Store
        • 4.2.2 Installation du MySQL Shell
        • 4.2.3 Collections et documents
        • 4.2.4 La base exemple world_x
      • 4.3 Exemple d’utilisation
  • Autres fonctionnalités
    • 1. Partitionnement
      • 1.1 Intérêt et limitations
        • 1.1.1 Gestion des gros volumes
        • 1.1.2 Partition pruning
        • 1.1.3 Suppression rapide d’un gros volume de données
        • 1.1.4 Limitations
      • 1.2 Types de partitionnement
        • 1.2.1 Le partitionnement de type RANGE
        • 1.2.2 Le partitionnement de type RANGE COLUMNS
        • 1.2.3 Le partitionnement de type LIST
        • 1.2.4 Le partitionnement de type LIST COLUMNS
        • 1.2.5 Le partitionnement de type HASH
        • 1.2.6 Le partitionnement de type KEY
        • 1.2.7 Les variantes LINEAR HASH/KEY
        • 1.2.8 Choix explicite d’une partition
        • 1.2.9 Sous-partitionnement
        • 1.2.10 Fonctions du partitionnement
        • 1.2.11 Import et export d’une partition dans une table
      • 1.3 Gestion du partitionnement
      • 1.4 Maintenance
    • 2. Routines stockées
      • 2.1 Rôle
      • 2.2 Syntaxe
        • 2.2.1 Procédures stockées
        • 2.2.2 Fonctions stockées
      • 2.3 Utilisation
      • 2.4 Métadonnées
      • 2.5 Restrictions
    • 3. Déclencheurs (triggers)
      • 3.1 Rôle
      • 3.2 Syntaxe
      • 3.3 Restrictions
    • 4. Événements
      • 4.1 Rôle
      • 4.2 Syntaxe
      • 4.3 Restrictions
    • 5. Vues
      • 5.1 Rôle
      • 5.2 Syntaxe
    • 6. Nouvelles fonctionnalités de MySQL 8.0
      • 6.1 Fonctions de fenêtrage
      • 6.2 Requêtes avec WITH (Common Table Expressions)
  • Outils de surveillance
    • 1. Introduction
    • 2. Accès aux métadonnées
      • 2.1 Commandes spécifiques MySQL
        • 2.1.1 Commandes SHOW
        • 2.1.2 Commande DESCRIBE
      • 2.2 Base information_schema
    • 3. Outils de base pour la surveillance
      • 3.1 SHOW PROCESSLIST
      • 3.2 SHOW GLOBAL STATUS
      • 3.3 SHOW ENGINE INNODB STATUS
        • 3.3.1 SEMAPHORES
        • 3.3.2 LAST FOREIGN KEY ERROR
        • 3.3.3 LAST DETECTED DEADLOCK
        • 3.3.4 TRANSACTIONS
        • 3.3.5 FILE I/O
        • 3.3.6 INSERT BUFFER AND ADAPTATIVE HASH INDEX
        • 3.3.7 LOG
        • 3.3.8 BUFFER POOL AND MEMORY
        • 3.3.9 ROW OPERATIONS
    • 4. Performance Schema
      • 4.1 Rôle
      • 4.2 Configuration
      • 4.3 Schéma sys
    • 5. Identification des problèmes de requêtes
      • 5.1 Requêtes lentes
      • 5.2 Deadlocks
    • 6. Outils de surveillance du système
      • 6.1 Cacti
      • 6.2 Grafana
      • 6.3 Nagios
      • 6.4 Identification des problèmes système sous Linux
        • 6.4.1 vmstat
        • 6.4.2 iostat
        • 6.4.3 mpstat
    • Index

Auteur

Stéphane COMBAUDONEn savoir plus

Stéphane COMBAUDON est Architecte MySQL/DBA et gère un parc de plusieurs centaines de serveurs MySQL. Il est certifié MySQL 5 DBA. Cet expert MySQL administre quotidiennement ce serveur de bases de données, depuis de nombreuses années et dans des environnements professionnels diversifiés.

Caractéristiques

  • Niveau Initié à Confirmé
  • Nombre de pages 515 pages
  • Parution janvier 2019
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-01711-7
    • EAN : 9782409017117
    • Ref. ENI : RI8MYSA
  • Niveau Initié à Confirmé
  • Parution janvier 2019
    • HTML
    • ISBN : 978-2-409-01713-1
    • EAN : 9782409017131
    • Ref. ENI : LNRI8MYSA

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (3,15 Ko)