mysql et mariadb dans le web

41
MySQL & MariaDB dans le web Christophe Villeneuve @hellosct1

Upload: christophe-villeneuve

Post on 25-Jun-2015

685 views

Category:

Documents


5 download

DESCRIPTION

Présentation effectuée à l'OSDC & Open World Forum 2013 - Track Code par Christophe Villeneuve

TRANSCRIPT

Page 1: MySQL et MariaDB dans le web

MySQL & MariaDB dans le web

Christophe Villeneuve

@hellosct1

Page 2: MySQL et MariaDB dans le web

ChristopheVilleneuve

Qui ?

Page 3: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ Histoire✔ Un choix✔ En mode avancé✔ En pratique

Sommaire

Page 4: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ Fondé par✔ Monty Widenius✔ David Axmark

✔ 1983 – 1ère idée✔ Fondé en 1995 ✔ 2007 Préparation pour

Nasdaq✔ 2008 Rachat par Sun✔ 2009 Sun racheté par

Oracle✔ Promesse de Oracle

sur 5 ans (fin 2009)

L'origine Dates importantes

Histoire de début

Page 5: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ N° 1 dans le monde✔ 50k Download (depuis

2003)✔ + 13M installation

active

✔ MySQL Oracle✔ Drizzle✔ Percona✔ MariaDB

✔ De nos jours... MySQL Forks

Et maintenant

Page 6: MySQL et MariaDB dans le web

Le 5 octobre 2013

Présentation des forks

Page 7: MySQL et MariaDB dans le web
Page 8: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ 1983✔ 1995 Création de

MySQL✔ 1999 MySQL 3.23✔ 2000 InnoDB✔ 2003 MySQL 3.23 GA✔ 2004 MySQL 4.1 GA✔ 2005 Oracle avec

InnoDB✔ 2005 MySQL 5.0 GA

✔ 2008 MySQL 5.1GA(Sun)

✔ 2010 MySQL 5.5 GA (Oracle)

✔ 2011 Modules de codes source fermé

✔ 2013 MySQL 5.6 GA✔ ??? MySQL 5.7

Les grandes dates de MySQL

Page 9: MySQL et MariaDB dans le web
Page 10: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ Mi 2008 début✔ Mars 2011 1ère

version GA

✔ Version redessinée de MySQL 6.0

✔ Basé sur Micro-kernel + simple & + léger

✔ En ligne de commande

✔ BDD du coté serveur✔ GPL v2

Drizzle les points forts

Page 11: MySQL et MariaDB dans le web
Page 12: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ Dec 2008 : 1ère released✔ 2010 Percona 5.5✔ Juin 2013 Percona 5.6

✔ XtraDB au lieu de InnoDB✔ Plus d'instrumentation

✔ Nombreux outils✔ Amélioration Restart✔ Performance✔ Statistiques 

Les étapes de Percona Server

Page 13: MySQL et MariaDB dans le web
Page 14: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ Communauté d'amis✔ 100 % Open source et

compatible MySQL✔ Plateforme d'innovation✔ Des commiteurs

✔ Dec 2008 Création de Monty Program 

 → Monty Widenius✔ MariaDB 5.1 (Fev 2010)✔ MariaDB 5.2 (Nov 2010)✔ MariaDB 5.3 (Avril 2012)✔ MariaDB 5.5 (Avril 2012)✔ MariaDB 10.0a (Nov 2012) 

1er semestre 2013✔ 2013 Fondation✔ MariaDB 10.0.1 

(fin 2013)Galera people

Compression Multimaster Replication

MariaDB : un jeune projet... MATURE

Page 15: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ MariaDB 5.1 → MySQL 5.1✔ MariaDB 5.2 → MariaDB 5.1✔ MariaDB 5.3 → MariaDB 5.2✔ MariaDB 5.5 → MariaDB 5.3 + MySQL 5.5✔ MariaDB 10.0 → MariaDB 5.5 + MySQL 5.6✔ MariaDB 5.6 → MariaDB 5.5 + MySQL 5.6

Fin 2013✔ MariaDB 10.0.1 → MariaDB 5.6 + MariaDB 10.0

Repère des versions

Page 16: MySQL et MariaDB dans le web
Page 17: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ Plus de storages✔ Vitesse

✔ Innodb, replication, stockage...✔ Nombreuses extensions et fonctionnalités

✔ Colonnes virtuelles, colonne dynamique, multi...✔ Plus de tests

✔ Tests correctifs, réactivités...✔ Code source ouvert✔ Développé par la communauté

En un mot... MariaDB vs MySQL

Page 18: MySQL et MariaDB dans le web

Le 5 octobre 2013

Mode avancé

Page 19: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ PHP (driver natif) → BSD licence✔ Python✔ Perl✔ Ruby✔ .NET avec MyODBC ✔ JDBC (basé sur drizzle driver)✔ C✔ Oracle connector (licence GPL)

Tous sont LGPL → Aucune licence commerciale

Connecteurs

Page 20: MySQL et MariaDB dans le web

Le 5 octobre 2013

Cassandra SE✔ A partir de MariaDB 5.3✔ NoSQL / NewSQL

✔ Données non structurées✔ Réplication rapide

✔ Assurer l'intégration des données SQL / NoSQL✔ Mapping possible

Storages engines 1/4

Page 21: MySQL et MariaDB dans le web

Le 5 octobre 2013

➢Cassandra➢TokuDB

✔ (R)Tokutek & MariaDB✔ Natif MariaDB 5.5 & 10.0✔Tech : Utilise l'arbre fractal

✔  Amélioration indexation✔  Amélioration des requêtes

✔ Schéma de vitesse✔ Compression✔ Réplication✔ Souple

Storages engine 2/4

Page 22: MySQL et MariaDB dans le web

Le 5 octobre 2013

➢Cassandra➢TokuDB➢Connect

✔ MariaDB 10.0✔ Lecture / Ecriture / MAJ

✔ TXT✔ DBF✔ .INI✔ .XML✔ ODBC

✔ Locale ou distant✔ Possible de faire le sien

Storages engine 3/4

Page 23: MySQL et MariaDB dans le web

Le 5 octobre 2013

➢Cassandra➢TokuDB➢Connect

A partir de 5.1

✔ PBXT(Désactiver 5.5)✔ XtraDB (old innoDB)✔ FederatedX✔ Aria (old MyISAM)

Storages engine 4/4

Page 24: MySQL et MariaDB dans le web

Le 5 octobre 2013

➢Cassandra➢TokuDB➢Connect

A partir de 5.1

✔ OQGraph (moteur info)✔ SphinxSE (=search)

A partir de 5.2

Storages engines 4/4

Page 25: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ Pont entre les BDD relationnelles et non relationnelles

✔ Toutes les colonnes stockées dans un « blob »✔ Possibilité de le manipuler✔ Possibilité de créer des index Virtuels

Colonnes Dynamiques

Page 26: MySQL et MariaDB dans le web

Le 5 octobre 2013

CREATE TABLE t1 (

ID int

auto_increment

primary key,

Type_id int,

Prix decimal(7,2),

extra blob

);

COLUMN_CREATE(

column_nr,

value [as type],

[

column_nr,

value [as type]

],

...)

INSERT into t1 values (NULL, 1 , 10, COLUMN_CREATE(1, 'bleu', 2 , 'M'));

INSERT into t1 values (NULL, 2 , 400, COLUMN_CREATE(3, 'RAM', 5 , 800));

UPDATE t1 SET extra = COLUMN_ADD(extra, 6 , 2048) WHERE id=2;

Coloris / Taille / Matériel / Vide / hard / optionID / Type_id / Prix

Création d'une colonne dynamique

Page 27: MySQL et MariaDB dans le web

Le 5 octobre 2013

Exemple plus réaliste

Page 28: MySQL et MariaDB dans le web

Le 5 octobre 2013

SELECT ...

FROM table1

WHERE table1_col IN (

SELECT table2_col

FROM table2

WHERE table2_subq)

AND table1_where;

Optimizer_switch='semijoin=on'Materialization=on / offin_to_exists = on/offtmp_table_sizemax_heap_table_size

Optimizer_switch='semijoin=on'Materialization=on / offin_to_exists = on/offtmp_table_sizemax_heap_table_size

Subquery... MariaDB 5.3 + MySQL 5.6

Page 29: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ Moteur de table (storages engines) natif✔ Réplication multisource✔ NOW() à la place de DATETIME✔ Amélioration des informations erreurs✔ Amélioration schéma de performance ✔ InnoDB✔ Replication✔ Statistics & Monitoring✔ Optimizer✔ Performance

MariaDB 10.0

Page 30: MySQL et MariaDB dans le web

Le 5 octobre 2013http://blog.mariadb.org/mariadb-5-3-optimizer-benchmark/

Performance

Page 31: MySQL et MariaDB dans le web

Le 5 octobre 2013

En pratique

Page 32: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ EasyPHP✔ Xampp✔ WampServer✔ PHPserver✔ WampMSS

Environnement embarqué

Page 33: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ DL MariaDB (http://mariadb.org)✔ Installer dans 1 dossier MySQL✔ Déplacer les BDD sauvegardées \data\✔ Lancer Wampserver

Exemple 1 : wampserver

Page 34: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ DL PHPServerhttp://www.treshaut.net/viewtopic.php?t=28&p=71

✔ Installation

Exemple 2 : PHPServer

Page 35: MySQL et MariaDB dans le web

Le 5 octobre 2013

Exemple 2 : PHPServer avec phpMyAdmin

Page 36: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ sudo apt-get install mariadb-server mariadb-client

✔ Vous retrouvez :✔ /etc/mysql/my.cnf✔ > mysql

✔ Au final

Exemple 3 : Linux

Page 37: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ MySQLdump✔ XtraBackup✔ mysqlhotcopy

(MyISAM)✔ XtraBackup manager

(PHP)✔ ...

✔ MySQL Workbench✔ SkySQL visual Editor

(SQLYog)✔ HeidiSQL✔ PhpMyAdmin✔ Toad For MySQL✔ ...

Backup Pour vos requêtes

Outils

Page 38: MySQL et MariaDB dans le web

GO MariaDB

Page 39: MySQL et MariaDB dans le web

Le 5 octobre 2013

Apprentissage

Page 40: MySQL et MariaDB dans le web

Le 5 octobre 2013

✔ Distributions✔ OpenSUSE 12.3✔ Gentoo✔ FreeBSD✔ Homebrew✔ Slackware✔ ArchLinux✔ Fédora 7.0✔ ...

✔ Dec 2012 Wikipedia✔ 2013

✔ Blog de Mozilla✔ Google Developer

Ceux qui ont déjà sauté...

Page 41: MySQL et MariaDB dans le web

Le 5 octobre 2013

Merci