Optimisations des SGBDR. Étude de cas : MySQL



Documents pareils
Optimisation de MySQL

Cours: Administration d'une Base de Données

Olivier Mondet

Le Langage De Description De Données(LDD)

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Audit et optimisation MySQL 5

La présente publication est protégée par les droits d auteur. Tous droits réservés.

Introduction aux SGBDR

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

//////////////////////////////////////////////////////////////////// Administration bases de données

1/ Présentation de SQL Server :

Sybase Adaptive Server Enterprise 15

PHP 5. La base de données MySql. A. Belaïd 1

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Du 10 Fév. au 14 Mars 2014

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

TP Bases de données réparties

Cours Bases de données

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Stockage du fichier dans une table mysql:

ORACLE TUNING PACK 11G

Structure fonctionnelle d un SGBD

MySQL 5.6. Performances et Tuning. MySQL Performances et Tuning. MySQL 5.6. Vincent TAHON

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Introduction à JDBC. Accès aux bases de données en Java

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

Java et les bases de données

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Création et Gestion des tables

Ecole Industrielle et Commerciale de la ville de Namur. Structure et application des bases de données. Y. Mine

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Mysql. Les requêtes préparées Prepared statements

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

Compte-rendu de projet de Système de gestion de base de données

Bases de données relationnelles

I4 : Bases de Données

Introduction à MySQL (ou MySQL en 3 heures montre en main)

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Gestion des utilisateurs et de leurs droits

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

«clustering» et «load balancing» avec Zope et ZEO

Architectures haute disponibilité avec MySQL. Olivier Olivier DASINI DASINI - -

Les BASES de DONNEES dans WampServer

CHAPITRE 1 ARCHITECTURE

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

Langage SQL : créer et interroger une base

Installation d'un serveur FTP géré par une base de données MySQL

Bases de Données relationnelles et leurs systèmes de Gestion

Cours 8 Not Only SQL

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Comprendre et optimiser la base de données WordPress WP TECH 2014

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Bases de données Cours 1 : Généralités sur les bases de données

Le langage SQL (première partie) c Olivier Caron

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Technologie SDS (Software-Defined Storage) de DataCore

Gestion collaborative de documents

OpenPaaS Le réseau social d'entreprise

Implémentation des SGBD

Bases de Données. Plan

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

PostgreSQL, le cœur d un système critique

GPC Computer Science

Pour les débutants. langage de définition des données

A QUOI SERVENT LES BASES DE DONNÉES?

Description de SQL SERVER. historique

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

Les bases de données Page 1 / 8

Bases de données et sites WEB

<Insert Picture Here> Exadata Storage Server et DB Machine V2

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Encryptions, compression et partitionnement des données

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Technologie de déduplication de Barracuda Backup. Livre blanc

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Sécuristation du Cloud

Application web de gestion de comptes en banques

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

Module BDR Master d Informatique (SAR)

Java DataBaseConnectivity

Notion de base de données

Présentation du module Base de données spatio-temporelles

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

SQL Historique

Gestion de base de données

Transcription:

Optimisations des SGBDR Étude de cas : MySQL

Introduction Pourquoi optimiser son application?

Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique (finance,...) 3. Gagner des clients (Amazon,... )

Introduction Où faut il optimiser son application?

Introduction Où faut il optimiser son application? Identifier et optimiser les bottlenecks! 1. CPU 2. I / O (disque, réseau,... ) 3. Allocation mémoire

Introduction Un SGBDR utilise toutes ces ressources de manière intensive. Il devient donc le bottleneck! De manière générale, il faut améliorer sa base avant d'améliorer son application.

Optimisations 1. Architecture 2. Moteurs de stockage 3. Index 4. Types de données 5. Performances et requêtes

Moteurs de stockage MyISAM, InnoDB, Archive

Moteurs de stockage Un moteur de stockage est un ensemble d'algorithmes permettant de gérer une table d'une base de données. Chaque moteur a une vocation, un objectif, est une réponse à une problématique. Choisir le bon moteur de stockage change de manière drastique les performances.

Moteurs de stockage Les plus populaires sont : MyISAM InnoDB Archive Memory

MyISAM Moteur par défaut. Fonctionnalités : Non transactionnel, réparation manuelle et automatique, écriture de clés différées, compression,... Mais se veut en partie transactionnel...

InnoDB Transactionnel : MVCC, niveaux d'isolation, row-level locking,... Predictable read, performances énormes pour les requêtes sur clés primaires,... Chaque modification de table provoque sa reconstruction complète! Réputé pour être plus lent que MyISAM

Archive Ne supporte que les insertions / sélections. Les lignes sont compressées et les écritures placées dans un buffer. Row-level locking (pourquoi?) En bref : optimisé pour les insertions et l'espace disque.

Indexation B-Tree et hash

Indexation Quel est l'intérêt d'indexer ses données?

Indexation Quel est l'intérêt d'indexer ses données? Les performances! Un index permet de retrouver très rapidement un ensemble de données.

B-Tree Arbre équilibré Avantages : Lecture séquentielle rapide - Accès très rapides Inconvénients : Potentielle mauvaise localité - Taille de l'index pouvant être importante

B-Tree

Hachage Création d'une clé associée à une valeur ou un groupe. Avantages : Très rapide pour les insertions / suppressions / sélections avec égalité. Inconvénients : Sélections ordonnées

Indexation Choisir son index : CREATE INDEX id_index ON lookup (id) USING BTREE; CREATE INDEX id_index ON lookup (id) USING HASH; Par défaut, le B-Tree est utilisé.

Types de données

Types de données Qu'apporte le bon choix du type de donnés?

Types de données Qu'apporte le bon choix du type de donnés? Moins d'espace disque, de mémoire, de cycles CPU et d'espace dans le cache du CPU.

Les entiers TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT codé respectivement sur 8, 16, 24, 32, 64 bits. Peuvent être non signés (mot-clé UNSIGNED) Quelles sont les différences entre INT(1) et INT (24)?

Le texte Les implémentations des CHAR et VARCHAR varient avec le moteur de stockage. CHAR : Taille fixe VARCHAR : Taille variable

VARCHAR Seul le nécessaire est persisté. Utilise entre 1 et 2 bytes pour stocker la taille. L'action associée au dépassement varie avec le moteur de stockage.

CHAR Les espaces en fin de chaîne sont supprimés. Des espaces sont ajoutés à la fin pour la comparaison. Efficace lorsque la taille est prédéfinie ou très faible.

NULL Eviter NULL dès que possible! Ajoute 1 byte par entrée. Rend les index et les comparaisons plus complexes, donc l'optimisation des requêtes.

Performances et requêtes Requêtes SQL et cache

Performances et requêtes Récupérer plus de données que nécessaire. MySQL ne renvoie pas progressivement les lignes, mais un ResultSet complet! Comment réduire le nombre de lignes récupérées sans WHERE?

Performances et requêtes Récupérer toutes les colonnes lors d'une jointure multiple. Abuser du SELECT * est un crime! Pourquoi ne pas simplement récupérer les colonnes qui nous intéressent?

Performances et requêtes Utiliser des requêtes préparées. La requête n'est parsée et optimisée qu'une seule fois. Utilisation d'un protocole unique pour l'envoi des paramètres. Propre à une connexion, inutile si appelée une seule fois, attention au leak!

Performances et requêtes Compresser les données à travers le réseau. Via le shell : --compress Via JDBC : <db_name>?usecompression=true

Performances et requêtes Plein de requêtes VS requêtes complexes. MySQL a été pensé pour gérer rapidement les petites requêtes. Penser au cache...

Performances et requêtes MySQL met en cache les requêtes de sélection. Attention aux requêtes ne pouvant être mises en cache! (NOW, CURRENT_DATE). Cache entièrement paramétrable

Performances et requêtes Lors de la réception d'une requête, si celle-ci commence par "SEL", on regarde le cache. Comment s'effectue la recherche dans le cache? Est-ce toujours pertinent d'utiliser le cache?

Performances et requêtes SQL_CACHE / SQL_NO_CACHE : Force la requête à être mise en cache, ou non. EXPLAIN : Renvoie les informations sur le plan d'exécution DESCRIBE : Décrit une table d'une base de données

Conclusion L'optimisation d'une application commence par son SGBD! MySQL est un produit complet et souple grâce à ses moteurs de stockage. Utilisé par les grands du Web (Twitter, Facebook,...)