l importance des forks de mysql
DESCRIPTION
Présentation à la nAcademy (Avril 2013) : L'importance des forks de MySQL par Christophe VilleneuveTRANSCRIPT
L'importance des Forks de MySQL
Christophe Villeneuve
17 avril 2013
nAcademy – 17 Avril 2013
Sommaire
✔ Histoire
✔ Un choix
✔ En mode avancé
✔ En pratique
nAcademy – 17 Avril 2013
Histoire du début
✔ 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
nAcademy – 17 Avril 2013
Et maintenant
✔ N° 1 dans le monde
✔ 50k Download (depuis 2003)
✔ + 13M installation active
✔ MySQL Oracle
✔ Drizzle
✔ Percona
✔ MariaDB
✔ De nos jours... MySQL Forks
nAcademy – 17 Avril 2013
Présentation des Forks
nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
Les grandes dates de MySQL
✔ 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
nAcademy – 17 Avril 2013
Que trouve-t-on dans MySQL 5.6 ?
✔ Optimisation✔ Exécution requêtes
✔ Plus disponibilité
✔ Performance schéma
✔ Sous requêtes (Subquery)
✔ In-to-exists✔ Semi-join✔ Materialization
✔ Amélioration✔ PERFORMANCE_SCHEMA
✔ Information_schema
✔ Amélioration
✔ Lecture de lignes avec intervalle ✔ Mode séquentielle au lieu aléatoire✔ Index Condition Pushdown (ICP)✔ Amélioration des petites LIMIT
✔ Scalability
✔ Support des Logs✔ Data dictionary cache✔ Group commit
✔ Fonctionnalité
✔ MemcacheD API innodb✔ SHA 256 authentification✔ Microsecond Time précision✔ Interface NoSQL
nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
Drizzle les points forts
✔ 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
nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
Les étapes Percona Server
✔ 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
nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
MariaDB : Un jeune projet... MATURE
✔ 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 FondationGalera people
Compression Multimaster Replication
nAcademy – 17 Avril 2013
Repère des versions
✔ 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
nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
Comparaison 1/3
© Monty Widenius
nAcademy – 17 Avril 2013
Comparaison 2/3
© Monty Widenius
nAcademy – 17 Avril 2013
Comparaison 3/3
© Monty Widenius
nAcademy – 17 Avril 2013
En un mot... MariaDB vs MySQL
✔ 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é
nAcademy – 17 Avril 2013
Mode avancé
nAcademy – 17 Avril 2013
Connecteurs
✔ PHP (driver natif) → BSD licence
✔ Python
✔ Ruby
✔ .NET avec MyODBC
✔ JDBC (basé sur drizzle driver)
✔ C
✔ Oracle connector (licence GPL)
Tous sont LGPL → Aucune licence commerciale
nAcademy – 17 Avril 2013
Storages engines 1/4
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
nAcademy – 17 Avril 2013
Storages engines 2/4
➢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
nAcademy – 17 Avril 2013
Storages engines 3/4
➢Cassandra
➢TokuDB➢Connect
✔ MariaDB 10.0
✔ Lecture / Ecriture / MAJ
✔ TXT✔ DBF✔ .INI✔ .XML✔ ODBC
✔ Locale ou distant
✔ Possible de faire le sien
nAcademy – 17 Avril 2013
Storages engines 4/4
➢Cassandra
➢TokuDB➢Connect
A partir de 5.1
✔ PBXT (Désactiver 5.5)✔ XtraDB (old innoDB)✔ FederatedX✔ Aria (old MyISAM)
nAcademy – 17 Avril 2013
Storages engines 4/4
➢Cassandra
➢TokuDB➢Connect
A partir de 5.1
✔ OQGraph (moteur info)✔ SphinxSE (=search)
A partir de 5.2
nAcademy – 17 Avril 2013
Colonnes dynamiques
✔ 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
nAcademy – 17 Avril 2013
Création d'une colonne dynamique
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
nAcademy – 17 Avril 2013
Exemple plus réaliste
nAcademy – 17 Avril 2013
Subquery... MariaDB 5.3+ / MySQL 5.6
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
nAcademy – 17 Avril 2013
MariaDB 10.0
✔ 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
nAcademy – 17 Avril 2013
Performance
http://blog.mariadb.org/mariadb-5-3-optimizer-benchmark/
nAcademy – 17 Avril 2013
En pratique
nAcademy – 17 Avril 2013
Environnement embarqué
✔ EasyPHP
✔ Xampp
✔ WampServer
✔ PHPserver
✔ WampMSS
nAcademy – 17 Avril 2013
Exemple 1 : Wampserver
✔ DL MariaDB (http://mariadb.org)
✔ Installer dans 1 dossier MySQL
✔ Déplacer les BDD sauvegardées \data\
✔ Lancer Wampserver
nAcademy – 17 Avril 2013
Exemple 2 : PHPServer
✔ DL PHPServer
http://www.treshaut.net/viewtopic.php?t=28&p=71
✔ Installation
nAcademy – 17 Avril 2013
Exemple 2 : PHPServer avec phpMyAdmin
nAcademy – 17 Avril 2013
Exemple 3 : Linux
✔ sudo apt-get install mariadb-server mariadb-client
✔ Vous retrouvez :
✔ /etc/mysql/my.cnf✔ > mysql
✔ Au final
nAcademy – 17 Avril 2013
Outils
✔ MySQLdump
✔ XtraBackup
✔ mysqlhotcopy (MyISAM)
✔ XtraBackup manager (PHP)
✔ ...
✔ MySQL Workbench
✔ SkySQL visual Editor (SQLYog)
✔ HeidiSQL
✔ PhpMyAdmin
✔ Toad For MySQL
✔ ...
Backup Pour vos requêtes
nAcademy – 17 Avril 2013
GO MariaDB
nAcademy – 17 Avril 2013
Apprentissage
nAcademy – 17 Avril 2013
Ceux qui ont sauté...
✔ Distributions
✔ OpenSUSE 12.3✔ Gentoo✔ FreeBSD✔ Homebrew✔ Slackware✔ ArchLinux✔ Fédora 7.0✔ ...
✔ Dec 2012 Wikipedia
✔ 2013
✔ Blog de Mozilla✔ Google Developer
nAcademy – 17 Avril 2013
Questions ?