SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
MariaDB à l'assaut des développeurs 
(PHP, Python, Perl, Ruby, Java...) 
Le 4 sept. 2014 
Christophe Villeneuve 
@hellosct1
Qui... est Christophe Villeneuve ? 
<< 
afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – demoinparis – ici et maintenant – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – neuros - elephpant
Sommaire 
● Histoire & ses forks 
● MySQL 5.x → MariaDB 5.x 
● MariaDB 10.x 
● Les bases 
● MariaDB pour vos développements
L'origine Dates importantes 
Le 4 sept. 2014 
✔ 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 2014) 
Histoire de début
Le 4 sept. 2014 
✔ De nos jours... MySQL Forks 
✔ N° 1 dans le monde 
✔ 50k Download (depuis 
2003) 
✔ + 13M installation active 
✔ MySQL Oracle 
✔ Drizzle 
✔ Percona 
✔ MariaDB 
Et maintenant
Présentation des forks
Le 4 sept. 2014 
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 
✔ 2013 (dec) MySQL 5.7
Le 4 sept. 2014 
✔ Mi 2008 début 
✔ Mars 2011 1er 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
Le 4 sept. 2014 
Les étapes de 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
Le 4 sept. 2014 
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 Fondation 
Compression Multimaster 
Replication 
Galera people ✔ 2013 MariaDB 10.0.1
GO MariaDB
5.x 5.x 
Le 4 sept. 2014 
Compatibilité
Le 4 sept. 2014 
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 2014 ou début 2015 
✔ MariaDB 10.1 → MariaDB 10.0 + MySQL 5.6/5.7
Le 4 sept. 2014 
Apprentissage
Le 4 sept. 2014 
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é
Performance 
http://blog.mariadb.org/mariadb-5-3-optimizer-benchmark/ Le 4 sept. 2014
Le 4 sept. 2014 
Connecteurs 
✔ 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
Outils de dev : Environnement embarqué 
Le 4 sept. 2014 
✔ EasyPHP 
✔ Xampp 
✔ WampServer 
✔ PHPserver 
✔ WampMSS 
✔ Neard
Le 4 sept. 2014 
Exemple 1 : wampserver 
✔ DL MariaDB (http://mariadb.org) 
✔ Installer dans 1 dossier MySQL 
✔ Déplacer les BDD sauvegardées data 
✔ Lancer Wampserver
Exemple 2 : PHPServer 
✔ DL PHPServer 
http://www.treshaut.net/viewtopic.php?t=28&p=71 
Le 4 sept. 2014 
✔ Installation
Exemple 2 : PHPServer avec phpMyAdmin 
Le 4 sept. 2014
Exemple 3 : Linux 
✔ sudo apt-get install mariadb-server mariadb-client 
Le 4 sept. 2014 
✔ Vous retrouvez : 
✔ /etc/mysql/my.cnf 
✔ > mysql 
✔ Au final
Backup Pour vos requêtes 
Le 4 sept. 2014 
✔ MySQLdump 
✔ XtraBackup 
✔ mysqlhotcopy (MyISAM) 
✔ XtraBackup manager 
(PHP) 
✔ ... 
✔ MySQL Workbench 
✔ SkySQL visual Editor 
(SQLYog) 
✔ HeidiSQL 
✔ PhpMyAdmin 
✔ Toad For MySQL 
✔ ... 
Outils
Le 4 sept. 2014 
Dispo dans MariaDB 10.0 
✔ Moteur de stockage (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
Le 4 sept. 2014 
5.x 
10.x
✔ Précision date-heure 
Le 4 sept. 2014 
✔ Avant 
✔ TIME 
✔ DATETIME 
✔ TIMESTAMP 
✔ Dispo MariaDB 5.3+ 
✔ temporal functions 
✔ CAST 
✔ dynamic columns 
Les fonctions (1/5) 
Microseconds
Avant MariaDB 5.3+ 
Le 4 sept. 2014 
✔ Create table t1 (d 
DATETIME) ; 
✔ Insert INTO t1 values.... 
✔ Select * from t1 ; 
✔ Create table t2 (d 
DATETIME (6) ) ; 
✔ Insert Into t2 values 
('2011-03-11'), 
('2012-04-19 13:08:22'), 
('2013-07-18 13:44:22.123456'); 
✔ Select * from t2 ; 
Exemple (Microseconds)
✔ Dispo MariaDB 5.2+ 
✔ Colonne dans une table 
qui sa valeur calculée 
automatiquement 
Le 4 sept. 2014 
✔ 2 types : 
✔ VIRTUAL : sur le 
principe d'une vue 
✔ PERSISTENT : Calculé 
lorsque les données sont 
insérées et stockées dans 
une table 
Les fonctions (2/5) 
Microseconds 
Colonnes virtuelles 
Source : https://mariadb.com/kb/en/virtual-columns/
Le 4 sept. 2014 
Exemple (Colonnes Virtuelles) (1/2) 
✔ CREATE TABLE table1 ( 
a INT NOT NULL, 
b VARCHAR(32), 
c INT AS (a mod 10) VIRTUAL, 
d VARCHAR(5) AS (left(b,5)) PERSISTENT 
); 
✔ DESCRIBE table1;
Le 4 sept. 2014 
Exemple (Colonnes Virtuelles) (2/2) 
✔ INSERT INTO table1 VALUES 
✔ (1, 'some text',default,default), 
✔ (2, 'more text',5,default), 
✔ (123, 'even more text',default,'something'); 
✔ Select * from table1;
✔ Dispo MariaDB 10.0+ 
✔ Expressions régulières 
Le 4 sept. 2014 
✔ Compatible 
✔ REGEXP 
✔ RLIKE operator 
✔ Fonctionne 
✔ Multi caractères 
Les fonctions (3/5) 
Microseconds 
Colonnes Virtuelles 
PCRE 
Source : https://mariadb.com/kb/en/pcre-regular-expressions/
Le 4 sept. 2014 
Exemple (PCRE) (1/2) 
✔ Fonction de remplace 
✔ SELECT REGEXP_REPLACE('ab12cd','[0-9]','') AS r; 
→ abcd 
✔ Retourne 1ère position 
✔ SELECT REGEXP_INSTR('abc','b') ; 
→ 2 
✔ SELECT REGEXP_INSTR('hello','o') ; 
→ 5
Exemple (PCRE) (2/2) 
✔ Retourne la partie correspondante d'une chaine 
Le 4 sept. 2014 
✔ SELECT REGEXP_SUBSTR( 
'http://www.phpquebec.org/content/contact', 
'https?://[^/]*') 
FROM... 
→ http://www.phpquebec.org
✔ Dispo MariaDB 10+ 
✔ Inspiré de PostgreSQL 
✔ Supprimer les opérations 
qui renvoient un ensemble 
de ligne supprimées 
Le 4 sept. 2014 
Les fonctions (4/5) 
Microseconds 
Colonnes virtuelles 
PCRE 
Delete... Returning
Exemple (Delete...returning) 
✔ DELETE FROM tests WHERE status = 'DONE' 
RETURNING *; 
Le 4 sept. 2014 
✔ → 5
✔ Dispo MariaDB 5.3+ 
✔ Pont entre les BDD 
relationnelles et non 
relationnelles 
✔ Toutes les colonnes 
stockées dans un 'blob' 
✔ Possibilité de manipuler 
✔ Possibilité de créer des 
index virtuels 
Le 4 sept. 2014 
Les fonctions (5/5) 
Microseconds 
Colonnes virtuelles 
REG EXP 
Delete... Returning 
Colonnes Dynamiques
Le 4 sept. 2014 
Exemple (colonne dynamique) 1/2 
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] 
], 
...) 
ID type_id Prix blob
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; 
C1oloris Taille Materiel Mhz option 
Le 4 sept. 2014 
Exemple (colonne dynamique) 2/2 
ID type_id Prix 1 2 3 4 5 6 
1 1 10 bleu M 
2 2 400 Ram 800 2048
Le 4 sept. 2014 
Exemple2 (colonne dynamique)
Moteur de stockage 
storage engine
Le 4 sept. 2014 
Moteur de stockage : SphinxSE 
● Dispo MariaDB 5.2+ 
● Recherche Full-text 
● Ne stocke pas les données 
● Client haut pour permettre à MariaDB de parler à 
Sphinx searchd 
● Installation dans My.cnf 
[mysqld] 
plugin-load= 'ha_sphinx.so';
Entier 
Poids 
Votre 
requete 
Group 
Indexation 
Requete 
Le 4 sept. 2014 
Exemple SphinxSE 
● CREATE TABLE t1 ( 
id INTEGER UNSIGNED NOT NULL, 
weight INTEGER NOT NULL, 
query VARCHAR(3072) NOT NULL, 
group_id INTEGER, 
INDEX(query) 
) ENGINE=SPHINX 
CONNECTION="sphinx://localhost:9312/test"; 
● SELECT * FROM t1 WHERE query='test it;mode=any';
Le 4 sept. 2014 
Moteur de stockage : CassandraSE 
● Dispo MariaDB 10.0+ 
● Brique de Apache Cassandra 
● Données non relationnelles (NoSQL) 
● Assurer l'intégration des données SQL / NoSQL 
● Mapping possible 
● Manipulations : 
static columns, dynamic columns, rowkey 
● Installation dans My.cnf 
[mysqld] 
plugin-load=ha_cassandra.so
Le 4 sept. 2014 
CassandraSE : Utilisation (1/2) 
> create table t2 (rowkey varchar(36) primary key, 
data1 varchar(60), 
data2 varchar(60) 
) engine=cassandra 
keyspace='mariadbtest' 
thrift_host='localhost' 
column_family='cf1'; 
Clé 
primaire 
obligatoire 
Colonnes 
statiques 
Sous 
ensemble des 
colonnes CF
Le 4 sept. 2014 
CassandraSE : Utilisation (2/2) 
> insert into t1 values 
('rowkey10', 'data1-value', 123456), 
('rowkey11', 'data1-value2', 34543); 
> select * from t1 where rowkey='rowkey11';
Le 4 sept. 2014 
Moteur de stockage : Connect 
● Dispo MariaDB 10.0+ 
● ETL : Extract, transform et Load 
● Lecture / Ecriture / MAJ 
– TXT, DBF, INI, XML 
– MS Access, MS Excel, TBL (similaire à MERGE) 
– ODBC, MySQL,SQLite, Oracle, DB2, WMI... 
● Locale ou distant 
● Custom possible 
● Accès en parallèle sur multitables 
● Installation dans My.cnf 
[mysqld] 
plugin-load=ha_connect.so
Le 4 sept. 2014 
Connect : exemple CSV 
● Fichier 
– first,last,birthday 
– "Christophe","Villeneuve","Jan 1" 
– "PHP","Quebec","Sep 4" 
> CREATE TABLE users_csv ( 
first varchar(32) NOT NULL, 
last varchar(32) NOT NULL, 
birthday varchar(50) NOT NULL 
) ENGINE=CONNECT TABLE_TYPE =CSV FILE_NAME ='/var/lib/mysql/users.csv' 
HEADER=1 SEP_CHAR=',' QUOTED=1; 
> SELECT * FROM users_csv; 
| first | last | birthday | 
+---------------+---------------+-------------+ 
| Christophe | Villeneuve | Jan 1 | 
| PHP | Quebec | Sep 4 | 
+---------------+---------------+-------------+
Le 4 sept. 2014 
Connect : exemple ODBC 
> create Table table2 
ENGINE=CONNECT TABLE_TYPE=ODBC 
SRCDEF='select key, sum(l_quantity) qt from dbt3.table1 group by 
key' 
CONNECTION='DSN=oracle;UID=login;PWD=password'; 
> MariaDB [dbt3]> select sum(qt) from (select qt from table2) 
as result; 
→ 31444 
Valeur de sum(qt)
Le 4 sept. 2014 
Moteur de stockage : TokuDB 
● Natif dans MariaDB 5.5 & MariaDB 10.0+ 
● (R)Tokutek & MariaDB 
● Technique utilise l'arbre fractal 
– Amélioration indexation 
– Amélioration des requêtes 
● Schéma de vitesse 
● Compression 
● Réplication 
● Souple
Le 4 sept. 2014 
TokuDB : exemple
Le 4 sept. 2014 
Moteur de stockage : Spider (v3) 
● Dispo MariaDB 10.0+ 
● Moteur de stockage fédérés comme 
– Sharding / partitionnement * 
– Transactions *, XA 
– Intégré dans le pool de connexion 
– Haute disponibilité Cluster Shared­Nothing 
● Load balancing : 
– Accès par Spider cluster avec plusieurs serveurs 
MariaDB
Le 4 sept. 2014 
Spider : l'approche
Le 4 sept. 2014 
Moteur de stockage : Les autres 
● XtraDB (MariaDB 10.0.9) 
– Fork de InnoDB (Full compatible) 
● Aria appelé Maria (MariaDB 5.1) 
– Anciennement MyISAM 
● Mroonga (MariaDB 10.0) 
– fulltext searches with Chinese, Japanese and Korean languages 
● Oqgraph (MariaDB 10.0) 
– Utilisé pour mettre en oeuvre des structures d'arbres 
● Sequence (MariaDB 10.0) 
– Retourne une séquence de nombres comme un jeu de résultats 
● FederatedX (MariaDB 10.0) 
– Fork de Federated 
https://mariadb.com/kb/en/mariadb/documentation/storage-engines/
Le 4 sept. 2014 
✔ Distributions 
✔ OpenSUSE 12.3 
✔ Gentoo 
✔ FreeBSD 
✔ Homebrew 
✔ Slackware 
✔ ArchLinux 
✔ Debian / Ubuntu 
✔ Fédora 7.0 
✔ Redhat 
✔ ... 
✔ Dec 2012 Wikipedia 
✔ 2013 
✔ Blog de Mozilla 
✔ Google Developer 
Ceux qui ont déjà sauté...
Merci 
Et merci à Monty Widenius
Le 4 sept. 2014 
Ressources 
● MariaDB : https://mariadb.com/kb/en/ 
● Planet mariaDB : http://planetmariadb.org/ 
● Management : http://skysql.com/ 
● Blog http://serge.frezefond.com/

Contenu connexe

Tendances

Kubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration DockerKubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration DockerJean-Baptiste Claramonte
 
Journée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousJournée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousPublicis Sapient Engineering
 
L Importance des forks de MySQL
L Importance des forks de MySQLL Importance des forks de MySQL
L Importance des forks de MySQLneuros
 
Déploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec RancherDéploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec RancherAnthony Sigogne
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureParis Container Day
 
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !Publicis Sapient Engineering
 
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Alexis Ducastel
 
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Christophe Furmaniak
 
Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Olivier DASINI
 
XebiCon'16 : A la découverte de Nomad d'Hashicorp. Par Sergio Dos Santos, Dév...
XebiCon'16 : A la découverte de Nomad d'Hashicorp. Par Sergio Dos Santos, Dév...XebiCon'16 : A la découverte de Nomad d'Hashicorp. Par Sergio Dos Santos, Dév...
XebiCon'16 : A la découverte de Nomad d'Hashicorp. Par Sergio Dos Santos, Dév...Publicis Sapient Engineering
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitGeoffrey Bachelet
 
Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Christophe Villeneuve
 
20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natif20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natifHenri Gomez
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Christophe Furmaniak
 
Mixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopMixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopSMougenot
 

Tendances (20)

Kubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration DockerKubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration Docker
 
Journée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tousJournée DevOps : Puppet, un outil pour les installer tous
Journée DevOps : Puppet, un outil pour les installer tous
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
L Importance des forks de MySQL
L Importance des forks de MySQLL Importance des forks de MySQL
L Importance des forks de MySQL
 
Chiffrer et sécuriser MariaDB
Chiffrer et sécuriser MariaDBChiffrer et sécuriser MariaDB
Chiffrer et sécuriser MariaDB
 
Déploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec RancherDéploiement et gestion d'un site web avec Rancher
Déploiement et gestion d'un site web avec Rancher
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
 
Devoxx France : GruntJs In Action
Devoxx France : GruntJs In ActionDevoxx France : GruntJs In Action
Devoxx France : GruntJs In Action
 
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
 
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
Rancher, l'orchestrateur qui vous veut du bien -- BreizhCamp2016
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
 
Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8Étude de cas : migration MySQL Latin 1 vers UTF-8
Étude de cas : migration MySQL Latin 1 vers UTF-8
 
XebiCon'16 : A la découverte de Nomad d'Hashicorp. Par Sergio Dos Santos, Dév...
XebiCon'16 : A la découverte de Nomad d'Hashicorp. Par Sergio Dos Santos, Dév...XebiCon'16 : A la découverte de Nomad d'Hashicorp. Par Sergio Dos Santos, Dév...
XebiCon'16 : A la découverte de Nomad d'Hashicorp. Par Sergio Dos Santos, Dév...
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
 
Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017
 
Vert.x 3
Vert.x 3Vert.x 3
Vert.x 3
 
20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natif20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natif
 
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
Prez -chtijug-29032016-(micro)services, loadbalancing et gestion des erreurs ...
 
Mixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopMixit2014_Puppet_Workshop
Mixit2014_Puppet_Workshop
 

En vedette

Contrôler votre matériel par les apps - JDLL
Contrôler votre matériel par les apps - JDLLContrôler votre matériel par les apps - JDLL
Contrôler votre matériel par les apps - JDLLChristophe Villeneuve
 
RGAA3 et votre projet drupal - drupalfr
RGAA3 et votre projet drupal - drupalfrRGAA3 et votre projet drupal - drupalfr
RGAA3 et votre projet drupal - drupalfrChristophe Villeneuve
 
La sécurité à tous les niveaux - JDLL
La sécurité à tous les niveaux - JDLLLa sécurité à tous les niveaux - JDLL
La sécurité à tous les niveaux - JDLLChristophe Villeneuve
 
Interactive E-Learning System. Usages, perception et attentes des étudiants à...
Interactive E-Learning System. Usages, perception et attentes desétudiants à...Interactive E-Learning System. Usages, perception et attentes desétudiants à...
Interactive E-Learning System. Usages, perception et attentes des étudiants à...Maxime GIGNON
 
Huggies Classic Recien Nacido, pdf
Huggies Classic Recien Nacido, pdfHuggies Classic Recien Nacido, pdf
Huggies Classic Recien Nacido, pdfPañalera Tiago
 
El Tribunal Supremo confirma las competencias autonómicas en materia de autor...
El Tribunal Supremo confirma las competencias autonómicas en materia de autor...El Tribunal Supremo confirma las competencias autonómicas en materia de autor...
El Tribunal Supremo confirma las competencias autonómicas en materia de autor...Universidad Autónoma de Barcelona
 
Advene : Annotate Digital Vidéo, Echange on the NEt - Journée Arpège
Advene : Annotate Digital Vidéo, Echange on the NEt - Journée ArpègeAdvene : Annotate Digital Vidéo, Echange on the NEt - Journée Arpège
Advene : Annotate Digital Vidéo, Echange on the NEt - Journée ArpègeYannick Prié
 
Los Guachis del hospital de Albacete
Los Guachis del hospital de AlbaceteLos Guachis del hospital de Albacete
Los Guachis del hospital de Albacetejoseluisserrano
 
Fr champion iron mines november 2012
Fr champion iron mines november 2012Fr champion iron mines november 2012
Fr champion iron mines november 2012shosein2011
 
Nouvelles formes de communication écrite - part4
Nouvelles formes de communication écrite - part4Nouvelles formes de communication écrite - part4
Nouvelles formes de communication écrite - part4aixtal
 
Faire affaire avec des compagnies en difficulté financière
Faire affaire avec des compagnies en difficulté financièreFaire affaire avec des compagnies en difficulté financière
Faire affaire avec des compagnies en difficulté financièreFMC maintenant Dentons
 
Hd (High Definition)
Hd (High Definition)Hd (High Definition)
Hd (High Definition)Berk Cornie
 
Renforcer les systèmes de santé en Afrique subsaharienne : les enjeux pour la...
Renforcer les systèmes de santé en Afrique subsaharienne : les enjeux pour la...Renforcer les systèmes de santé en Afrique subsaharienne : les enjeux pour la...
Renforcer les systèmes de santé en Afrique subsaharienne : les enjeux pour la...Emilie Robert
 
Journée contributive - Conseil National Numérique
Journée contributive - Conseil National NumériqueJournée contributive - Conseil National Numérique
Journée contributive - Conseil National NumériqueVincent Barberot
 

En vedette (20)

Les fonctions MariaDB - LeMug.fr
Les fonctions MariaDB - LeMug.frLes fonctions MariaDB - LeMug.fr
Les fonctions MariaDB - LeMug.fr
 
Contrôler votre matériel par les apps - JDLL
Contrôler votre matériel par les apps - JDLLContrôler votre matériel par les apps - JDLL
Contrôler votre matériel par les apps - JDLL
 
RGAA3 et votre projet drupal - drupalfr
RGAA3 et votre projet drupal - drupalfrRGAA3 et votre projet drupal - drupalfr
RGAA3 et votre projet drupal - drupalfr
 
Le service workers
Le service workersLe service workers
Le service workers
 
La sécurité à tous les niveaux - JDLL
La sécurité à tous les niveaux - JDLLLa sécurité à tous les niveaux - JDLL
La sécurité à tous les niveaux - JDLL
 
Firefox OS - Api battery status
Firefox OS - Api battery statusFirefox OS - Api battery status
Firefox OS - Api battery status
 
Interactive E-Learning System. Usages, perception et attentes des étudiants à...
Interactive E-Learning System. Usages, perception et attentes desétudiants à...Interactive E-Learning System. Usages, perception et attentes desétudiants à...
Interactive E-Learning System. Usages, perception et attentes des étudiants à...
 
Semaine Ecole Entreprise 2014 : Présentation de l'opération
Semaine Ecole Entreprise 2014 : Présentation de l'opérationSemaine Ecole Entreprise 2014 : Présentation de l'opération
Semaine Ecole Entreprise 2014 : Présentation de l'opération
 
Huggies Classic Recien Nacido, pdf
Huggies Classic Recien Nacido, pdfHuggies Classic Recien Nacido, pdf
Huggies Classic Recien Nacido, pdf
 
El Tribunal Supremo confirma las competencias autonómicas en materia de autor...
El Tribunal Supremo confirma las competencias autonómicas en materia de autor...El Tribunal Supremo confirma las competencias autonómicas en materia de autor...
El Tribunal Supremo confirma las competencias autonómicas en materia de autor...
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Advene : Annotate Digital Vidéo, Echange on the NEt - Journée Arpège
Advene : Annotate Digital Vidéo, Echange on the NEt - Journée ArpègeAdvene : Annotate Digital Vidéo, Echange on the NEt - Journée Arpège
Advene : Annotate Digital Vidéo, Echange on the NEt - Journée Arpège
 
Los Guachis del hospital de Albacete
Los Guachis del hospital de AlbaceteLos Guachis del hospital de Albacete
Los Guachis del hospital de Albacete
 
Fr champion iron mines november 2012
Fr champion iron mines november 2012Fr champion iron mines november 2012
Fr champion iron mines november 2012
 
Nouvelles formes de communication écrite - part4
Nouvelles formes de communication écrite - part4Nouvelles formes de communication écrite - part4
Nouvelles formes de communication écrite - part4
 
Faire affaire avec des compagnies en difficulté financière
Faire affaire avec des compagnies en difficulté financièreFaire affaire avec des compagnies en difficulté financière
Faire affaire avec des compagnies en difficulté financière
 
Hd (High Definition)
Hd (High Definition)Hd (High Definition)
Hd (High Definition)
 
Renforcer les systèmes de santé en Afrique subsaharienne : les enjeux pour la...
Renforcer les systèmes de santé en Afrique subsaharienne : les enjeux pour la...Renforcer les systèmes de santé en Afrique subsaharienne : les enjeux pour la...
Renforcer les systèmes de santé en Afrique subsaharienne : les enjeux pour la...
 
M-paiement : la fin des caisses est-elle pour bientôt ?
M-paiement : la fin des caisses est-elle pour bientôt ?M-paiement : la fin des caisses est-elle pour bientôt ?
M-paiement : la fin des caisses est-elle pour bientôt ?
 
Journée contributive - Conseil National Numérique
Journée contributive - Conseil National NumériqueJournée contributive - Conseil National Numérique
Journée contributive - Conseil National Numérique
 

Similaire à MariaDB à l'assaut des developpeurs

Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
 
Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?Christophe Villeneuve
 
Deployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDaysDeployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDaysChristophe Villeneuve
 
Déployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement dans AzureDéployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement dans AzureMicrosoft
 
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans AzureSQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans AzureGUSS
 
Mybatis : Spring Data à la rescousse
Mybatis : Spring Data à la rescousse Mybatis : Spring Data à la rescousse
Mybatis : Spring Data à la rescousse Kokou Gaglo
 
Sql saturday 323 paris 2014 azure migration iaas et paas
Sql saturday 323 paris 2014   azure migration iaas et paasSql saturday 323 paris 2014   azure migration iaas et paas
Sql saturday 323 paris 2014 azure migration iaas et paasChristophe Laporte
 
Automatisation des gestionnaires de contenus (CMS)
Automatisation des gestionnaires de contenus (CMS)Automatisation des gestionnaires de contenus (CMS)
Automatisation des gestionnaires de contenus (CMS)Christophe Villeneuve
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Software-Defined Storage
Software-Defined StorageSoftware-Defined Storage
Software-Defined StorageSUSE
 
Intégration continue
Intégration continueIntégration continue
Intégration continueJohan Moreau
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontendyllieth
 
Améliorer les performances SQL
Améliorer les performances SQLAméliorer les performances SQL
Améliorer les performances SQLneuros
 
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?Smile I.T is open
 

Similaire à MariaDB à l'assaut des developpeurs (20)

PHP et MariaDB dans le Cloud
PHP et MariaDB dans le CloudPHP et MariaDB dans le Cloud
PHP et MariaDB dans le Cloud
 
Mariadb une base de données NewSQL
Mariadb une base de données NewSQLMariadb une base de données NewSQL
Mariadb une base de données NewSQL
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?Open source et microsoft azure reve ou realite ?
Open source et microsoft azure reve ou realite ?
 
Deployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDaysDeployer PHP et MariaDB dans Azure - TechDays
Deployer PHP et MariaDB dans Azure - TechDays
 
Déployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement dans AzureDéployez votre site PHP / MariaDB, simplement et rapidement dans Azure
Déployez votre site PHP / MariaDB, simplement et rapidement dans Azure
 
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans AzureSQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
 
Mybatis : Spring Data à la rescousse
Mybatis : Spring Data à la rescousse Mybatis : Spring Data à la rescousse
Mybatis : Spring Data à la rescousse
 
Les tests de sécurité
Les tests de sécuritéLes tests de sécurité
Les tests de sécurité
 
Sql saturday 323 paris 2014 azure migration iaas et paas
Sql saturday 323 paris 2014   azure migration iaas et paasSql saturday 323 paris 2014   azure migration iaas et paas
Sql saturday 323 paris 2014 azure migration iaas et paas
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
Automatisation des gestionnaires de contenus (CMS)
Automatisation des gestionnaires de contenus (CMS)Automatisation des gestionnaires de contenus (CMS)
Automatisation des gestionnaires de contenus (CMS)
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Software-Defined Storage
Software-Defined StorageSoftware-Defined Storage
Software-Defined Storage
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
 
Améliorer les performances SQL
Améliorer les performances SQLAméliorer les performances SQL
Améliorer les performances SQL
 
Hugfr infotel-11 juin2014
Hugfr infotel-11 juin2014Hugfr infotel-11 juin2014
Hugfr infotel-11 juin2014
 
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 

Plus de Christophe Villeneuve

La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxChristophe Villeneuve
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webChristophe Villeneuve
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteChristophe Villeneuve
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Christophe Villeneuve
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le designChristophe Villeneuve
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activitesChristophe Villeneuve
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftChristophe Villeneuve
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthnChristophe Villeneuve
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueChristophe Villeneuve
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsChristophe Villeneuve
 
la boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsla boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsChristophe Villeneuve
 

Plus de Christophe Villeneuve (20)

MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans Firefox
 
pister les pisteurs
pister les pisteurspister les pisteurs
pister les pisteurs
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le web
 
Open Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnanteOpen Source et contribution : Une association gagnante
Open Source et contribution : Une association gagnante
 
Pentest bus pirate
Pentest bus piratePentest bus pirate
Pentest bus pirate
 
Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?Peur de la migration vers l’open source ?
Peur de la migration vers l’open source ?
 
La sécurité applicative par le design
La sécurité applicative par le designLa sécurité applicative par le design
La sécurité applicative par le design
 
Foxfooding semaine 3
Foxfooding semaine 3Foxfooding semaine 3
Foxfooding semaine 3
 
Foxfooding
FoxfoodingFoxfooding
Foxfooding
 
Accessibilite web wcag rgaa
Accessibilite web wcag rgaaAccessibilite web wcag rgaa
Accessibilite web wcag rgaa
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activites
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et Microsoft
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
Send large files with addons
Send large files with addonsSend large files with addons
Send large files with addons
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratique
 
Donnez la voix aux machines
Donnez la voix aux machinesDonnez la voix aux machines
Donnez la voix aux machines
 
La réalité mélangée dans vos applications
La réalité mélangée dans vos applicationsLa réalité mélangée dans vos applications
La réalité mélangée dans vos applications
 
la boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsla boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtools
 

MariaDB à l'assaut des developpeurs

  • 1. MariaDB à l'assaut des développeurs (PHP, Python, Perl, Ruby, Java...) Le 4 sept. 2014 Christophe Villeneuve @hellosct1
  • 2. Qui... est Christophe Villeneuve ? << afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – demoinparis – ici et maintenant – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – neuros - elephpant
  • 3. Sommaire ● Histoire & ses forks ● MySQL 5.x → MariaDB 5.x ● MariaDB 10.x ● Les bases ● MariaDB pour vos développements
  • 4. L'origine Dates importantes Le 4 sept. 2014 ✔ 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 2014) Histoire de début
  • 5. Le 4 sept. 2014 ✔ De nos jours... MySQL Forks ✔ N° 1 dans le monde ✔ 50k Download (depuis 2003) ✔ + 13M installation active ✔ MySQL Oracle ✔ Drizzle ✔ Percona ✔ MariaDB Et maintenant
  • 7.
  • 8. Le 4 sept. 2014 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 ✔ 2013 (dec) MySQL 5.7
  • 9.
  • 10. Le 4 sept. 2014 ✔ Mi 2008 début ✔ Mars 2011 1er 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
  • 11.
  • 12. Le 4 sept. 2014 Les étapes de 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
  • 13.
  • 14. Le 4 sept. 2014 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 Fondation Compression Multimaster Replication Galera people ✔ 2013 MariaDB 10.0.1
  • 16. 5.x 5.x Le 4 sept. 2014 Compatibilité
  • 17. Le 4 sept. 2014 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 2014 ou début 2015 ✔ MariaDB 10.1 → MariaDB 10.0 + MySQL 5.6/5.7
  • 18. Le 4 sept. 2014 Apprentissage
  • 19. Le 4 sept. 2014 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é
  • 21. Le 4 sept. 2014 Connecteurs ✔ 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
  • 22. Outils de dev : Environnement embarqué Le 4 sept. 2014 ✔ EasyPHP ✔ Xampp ✔ WampServer ✔ PHPserver ✔ WampMSS ✔ Neard
  • 23. Le 4 sept. 2014 Exemple 1 : wampserver ✔ DL MariaDB (http://mariadb.org) ✔ Installer dans 1 dossier MySQL ✔ Déplacer les BDD sauvegardées data ✔ Lancer Wampserver
  • 24. Exemple 2 : PHPServer ✔ DL PHPServer http://www.treshaut.net/viewtopic.php?t=28&p=71 Le 4 sept. 2014 ✔ Installation
  • 25. Exemple 2 : PHPServer avec phpMyAdmin Le 4 sept. 2014
  • 26. Exemple 3 : Linux ✔ sudo apt-get install mariadb-server mariadb-client Le 4 sept. 2014 ✔ Vous retrouvez : ✔ /etc/mysql/my.cnf ✔ > mysql ✔ Au final
  • 27. Backup Pour vos requêtes Le 4 sept. 2014 ✔ MySQLdump ✔ XtraBackup ✔ mysqlhotcopy (MyISAM) ✔ XtraBackup manager (PHP) ✔ ... ✔ MySQL Workbench ✔ SkySQL visual Editor (SQLYog) ✔ HeidiSQL ✔ PhpMyAdmin ✔ Toad For MySQL ✔ ... Outils
  • 28. Le 4 sept. 2014 Dispo dans MariaDB 10.0 ✔ Moteur de stockage (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
  • 29. Le 4 sept. 2014 5.x 10.x
  • 30. ✔ Précision date-heure Le 4 sept. 2014 ✔ Avant ✔ TIME ✔ DATETIME ✔ TIMESTAMP ✔ Dispo MariaDB 5.3+ ✔ temporal functions ✔ CAST ✔ dynamic columns Les fonctions (1/5) Microseconds
  • 31. Avant MariaDB 5.3+ Le 4 sept. 2014 ✔ Create table t1 (d DATETIME) ; ✔ Insert INTO t1 values.... ✔ Select * from t1 ; ✔ Create table t2 (d DATETIME (6) ) ; ✔ Insert Into t2 values ('2011-03-11'), ('2012-04-19 13:08:22'), ('2013-07-18 13:44:22.123456'); ✔ Select * from t2 ; Exemple (Microseconds)
  • 32. ✔ Dispo MariaDB 5.2+ ✔ Colonne dans une table qui sa valeur calculée automatiquement Le 4 sept. 2014 ✔ 2 types : ✔ VIRTUAL : sur le principe d'une vue ✔ PERSISTENT : Calculé lorsque les données sont insérées et stockées dans une table Les fonctions (2/5) Microseconds Colonnes virtuelles Source : https://mariadb.com/kb/en/virtual-columns/
  • 33. Le 4 sept. 2014 Exemple (Colonnes Virtuelles) (1/2) ✔ CREATE TABLE table1 ( a INT NOT NULL, b VARCHAR(32), c INT AS (a mod 10) VIRTUAL, d VARCHAR(5) AS (left(b,5)) PERSISTENT ); ✔ DESCRIBE table1;
  • 34. Le 4 sept. 2014 Exemple (Colonnes Virtuelles) (2/2) ✔ INSERT INTO table1 VALUES ✔ (1, 'some text',default,default), ✔ (2, 'more text',5,default), ✔ (123, 'even more text',default,'something'); ✔ Select * from table1;
  • 35. ✔ Dispo MariaDB 10.0+ ✔ Expressions régulières Le 4 sept. 2014 ✔ Compatible ✔ REGEXP ✔ RLIKE operator ✔ Fonctionne ✔ Multi caractères Les fonctions (3/5) Microseconds Colonnes Virtuelles PCRE Source : https://mariadb.com/kb/en/pcre-regular-expressions/
  • 36. Le 4 sept. 2014 Exemple (PCRE) (1/2) ✔ Fonction de remplace ✔ SELECT REGEXP_REPLACE('ab12cd','[0-9]','') AS r; → abcd ✔ Retourne 1ère position ✔ SELECT REGEXP_INSTR('abc','b') ; → 2 ✔ SELECT REGEXP_INSTR('hello','o') ; → 5
  • 37. Exemple (PCRE) (2/2) ✔ Retourne la partie correspondante d'une chaine Le 4 sept. 2014 ✔ SELECT REGEXP_SUBSTR( 'http://www.phpquebec.org/content/contact', 'https?://[^/]*') FROM... → http://www.phpquebec.org
  • 38. ✔ Dispo MariaDB 10+ ✔ Inspiré de PostgreSQL ✔ Supprimer les opérations qui renvoient un ensemble de ligne supprimées Le 4 sept. 2014 Les fonctions (4/5) Microseconds Colonnes virtuelles PCRE Delete... Returning
  • 39. Exemple (Delete...returning) ✔ DELETE FROM tests WHERE status = 'DONE' RETURNING *; Le 4 sept. 2014 ✔ → 5
  • 40. ✔ Dispo MariaDB 5.3+ ✔ Pont entre les BDD relationnelles et non relationnelles ✔ Toutes les colonnes stockées dans un 'blob' ✔ Possibilité de manipuler ✔ Possibilité de créer des index virtuels Le 4 sept. 2014 Les fonctions (5/5) Microseconds Colonnes virtuelles REG EXP Delete... Returning Colonnes Dynamiques
  • 41. Le 4 sept. 2014 Exemple (colonne dynamique) 1/2 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] ], ...) ID type_id Prix blob
  • 42. 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; C1oloris Taille Materiel Mhz option Le 4 sept. 2014 Exemple (colonne dynamique) 2/2 ID type_id Prix 1 2 3 4 5 6 1 1 10 bleu M 2 2 400 Ram 800 2048
  • 43. Le 4 sept. 2014 Exemple2 (colonne dynamique)
  • 44. Moteur de stockage storage engine
  • 45. Le 4 sept. 2014 Moteur de stockage : SphinxSE ● Dispo MariaDB 5.2+ ● Recherche Full-text ● Ne stocke pas les données ● Client haut pour permettre à MariaDB de parler à Sphinx searchd ● Installation dans My.cnf [mysqld] plugin-load= 'ha_sphinx.so';
  • 46. Entier Poids Votre requete Group Indexation Requete Le 4 sept. 2014 Exemple SphinxSE ● CREATE TABLE t1 ( id INTEGER UNSIGNED NOT NULL, weight INTEGER NOT NULL, query VARCHAR(3072) NOT NULL, group_id INTEGER, INDEX(query) ) ENGINE=SPHINX CONNECTION="sphinx://localhost:9312/test"; ● SELECT * FROM t1 WHERE query='test it;mode=any';
  • 47. Le 4 sept. 2014 Moteur de stockage : CassandraSE ● Dispo MariaDB 10.0+ ● Brique de Apache Cassandra ● Données non relationnelles (NoSQL) ● Assurer l'intégration des données SQL / NoSQL ● Mapping possible ● Manipulations : static columns, dynamic columns, rowkey ● Installation dans My.cnf [mysqld] plugin-load=ha_cassandra.so
  • 48. Le 4 sept. 2014 CassandraSE : Utilisation (1/2) > create table t2 (rowkey varchar(36) primary key, data1 varchar(60), data2 varchar(60) ) engine=cassandra keyspace='mariadbtest' thrift_host='localhost' column_family='cf1'; Clé primaire obligatoire Colonnes statiques Sous ensemble des colonnes CF
  • 49. Le 4 sept. 2014 CassandraSE : Utilisation (2/2) > insert into t1 values ('rowkey10', 'data1-value', 123456), ('rowkey11', 'data1-value2', 34543); > select * from t1 where rowkey='rowkey11';
  • 50. Le 4 sept. 2014 Moteur de stockage : Connect ● Dispo MariaDB 10.0+ ● ETL : Extract, transform et Load ● Lecture / Ecriture / MAJ – TXT, DBF, INI, XML – MS Access, MS Excel, TBL (similaire à MERGE) – ODBC, MySQL,SQLite, Oracle, DB2, WMI... ● Locale ou distant ● Custom possible ● Accès en parallèle sur multitables ● Installation dans My.cnf [mysqld] plugin-load=ha_connect.so
  • 51. Le 4 sept. 2014 Connect : exemple CSV ● Fichier – first,last,birthday – "Christophe","Villeneuve","Jan 1" – "PHP","Quebec","Sep 4" > CREATE TABLE users_csv ( first varchar(32) NOT NULL, last varchar(32) NOT NULL, birthday varchar(50) NOT NULL ) ENGINE=CONNECT TABLE_TYPE =CSV FILE_NAME ='/var/lib/mysql/users.csv' HEADER=1 SEP_CHAR=',' QUOTED=1; > SELECT * FROM users_csv; | first | last | birthday | +---------------+---------------+-------------+ | Christophe | Villeneuve | Jan 1 | | PHP | Quebec | Sep 4 | +---------------+---------------+-------------+
  • 52. Le 4 sept. 2014 Connect : exemple ODBC > create Table table2 ENGINE=CONNECT TABLE_TYPE=ODBC SRCDEF='select key, sum(l_quantity) qt from dbt3.table1 group by key' CONNECTION='DSN=oracle;UID=login;PWD=password'; > MariaDB [dbt3]> select sum(qt) from (select qt from table2) as result; → 31444 Valeur de sum(qt)
  • 53. Le 4 sept. 2014 Moteur de stockage : TokuDB ● Natif dans MariaDB 5.5 & MariaDB 10.0+ ● (R)Tokutek & MariaDB ● Technique utilise l'arbre fractal – Amélioration indexation – Amélioration des requêtes ● Schéma de vitesse ● Compression ● Réplication ● Souple
  • 54. Le 4 sept. 2014 TokuDB : exemple
  • 55. Le 4 sept. 2014 Moteur de stockage : Spider (v3) ● Dispo MariaDB 10.0+ ● Moteur de stockage fédérés comme – Sharding / partitionnement * – Transactions *, XA – Intégré dans le pool de connexion – Haute disponibilité Cluster Shared­Nothing ● Load balancing : – Accès par Spider cluster avec plusieurs serveurs MariaDB
  • 56. Le 4 sept. 2014 Spider : l'approche
  • 57. Le 4 sept. 2014 Moteur de stockage : Les autres ● XtraDB (MariaDB 10.0.9) – Fork de InnoDB (Full compatible) ● Aria appelé Maria (MariaDB 5.1) – Anciennement MyISAM ● Mroonga (MariaDB 10.0) – fulltext searches with Chinese, Japanese and Korean languages ● Oqgraph (MariaDB 10.0) – Utilisé pour mettre en oeuvre des structures d'arbres ● Sequence (MariaDB 10.0) – Retourne une séquence de nombres comme un jeu de résultats ● FederatedX (MariaDB 10.0) – Fork de Federated https://mariadb.com/kb/en/mariadb/documentation/storage-engines/
  • 58. Le 4 sept. 2014 ✔ Distributions ✔ OpenSUSE 12.3 ✔ Gentoo ✔ FreeBSD ✔ Homebrew ✔ Slackware ✔ ArchLinux ✔ Debian / Ubuntu ✔ Fédora 7.0 ✔ Redhat ✔ ... ✔ Dec 2012 Wikipedia ✔ 2013 ✔ Blog de Mozilla ✔ Google Developer Ceux qui ont déjà sauté...
  • 59. Merci Et merci à Monty Widenius
  • 60. Le 4 sept. 2014 Ressources ● MariaDB : https://mariadb.com/kb/en/ ● Planet mariaDB : http://planetmariadb.org/ ● Management : http://skysql.com/ ● Blog http://serge.frezefond.com/