SlideShare une entreprise Scribd logo
MariaDB pour les développeurs 
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
Les points d'aujourd'hui 
● Une histoire simple 
● MySQL 5.x ←→ MariaDB 5.x 
● MariaDB 10.x 
● Les bases 
● MariaDB dans vos développements
L'origine Dates importantes 
✔ 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) 
Une histoire simple
✔ De nos jours... MySQL Forks 
✔ N° 1 dans le monde 
✔ 500k Download (depuis 
2003) 
✔ + 13M installation active 
✔ MySQL Oracle 
✔ Drizzle 
✔ Percona 
✔ MariaDB 
Et maintenant
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 ✔ MariaDB 10.0.14 (Sept 14)
GO MariaDB
Compatibilité 
5.x 5.x
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
Apprentissage
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 MariaDB 10.1 et MySQL 5.7.4 
https://blog.mariadb.org/performance-evaluation-of-mariadb-10-1-and-mysql-5-7-4-labs-tplc/
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é 
✔ EasyPHP 
✔ Xampp 
✔ WampServer 
✔ PHPserver 
✔ WampMSS 
✔ Neard
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 
✔ Installation
Exemple 2 : PHPServer avec phpMyAdmin
Exemple 3 : Linux 
✔ sudo apt-get install mariadb-server mariadb-client 
✔ Vous retrouvez : 
✔ /etc/mysql/my.cnf 
✔ > mysql 
✔ Au final
Backup Pour vos requêtes 
✔ MySQLdump 
✔ XtraBackup 
✔ mysqlhotcopy (MyISAM) 
✔ XtraBackup manager (PHP) 
✔ ... 
✔ MySQL Workbench 
✔ SkySQL visual Editor 
(SQLYog) 
✔ HeidiSQL 
✔ PhpMyAdmin 
✔ Toad For MySQL 
✔ ... 
Outils
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
5.x 
10.x
✔ Précision date-heure 
✔ Avant 
✔ TIME 
✔ DATETIME 
✔ TIMESTAMP 
✔ Dispo MariaDB 5.3+ 
✔ temporal functions 
✔ CAST 
✔ dynamic columns 
Les fonctions (1/5) 
Microseconds
Avant MariaDB 5.3+ 
✔ 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 
✔ 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/
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;
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 
✔ 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/
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 
✔ SELECT REGEXP_SUBSTR( 
'https://www.osdc.fr/content/contact', 
'https?://[^/]*') 
✔ 
→ https://www.osdc.fr
✔ Dispo MariaDB 10+ 
✔ Inspiré de PostgreSQL 
✔ Supprimer les opérations 
qui renvoient un ensemble 
de ligne supprimées 
Les fonctions (4/5) 
Microseconds 
Colonnes virtuelles 
PCRE 
Delete... Returning
Exemple (Delete...returning) 
✔ DELETE FROM tests WHERE status = 'DONE' 
RETURNING *; 
✔ → 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 
Les fonctions (5/5) 
Microseconds 
Colonnes virtuelles 
REG EXP 
Delete... Returning 
Colonnes Dynamiques
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
Exemple (colonne dynamique) 2/2 
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 
ID type_id Prix 1 2 3 4 5 6 
1 1 10 bleu M 
2 2 400 Ram 800 2048
Exemple2 (colonne dynamique)
Moteur de stockage 
storage engine
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';
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'; 
Entier 
Poids 
Votre requete 
Group 
Indexation 
Requete
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
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
CassandraSE : Utilisation (2/2) 
> insert into t1 values 
('rowkey10', 'data1-value', 123456), 
('rowkey11', 'data1-value2', 34543); 
> select * from t1 where rowkey='rowkey11';
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
Connect : exemple CSV 
● Fichier 
– first,last,birthday 
– "Christophe","Villeneuve","Jan 1" 
– "PHP","ODBC","Nov 22" 
> 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 | ODBC | Nov 22 | 
+---------------+---------------+-------------+
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)
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
TokuDB : exemple
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
Spider : Exemple
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/
Merci 
Ressources 
● MariaDB : 
https://mariadb.com/kb/en/ 
● Planet mariaDB : 
http://planetmariadb.org/ 
● Blog 
http://serge.frezefond.com/

Contenu connexe

Tendances

É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
Olivier DASINI
 
Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017
Christophe Villeneuve
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
Olivier DASINI
 
Cassandra pour les développeurs java
Cassandra pour les développeurs javaCassandra pour les développeurs java
Cassandra pour les développeurs java
Jérémy Sevellec
 
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Severalnines
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvert
Look a box
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Aurelien Navarre
 
Riak introduction
Riak introductionRiak introduction
Riak introduction
Damien Krotkine
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013
Alain Ganuchaud
 
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
Jean-Baptiste Claramonte
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
Aurelien Navarre
 
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchéesDrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
Aurelien Navarre
 
Scalabilité de MongoDB
Scalabilité de MongoDBScalabilité de MongoDB
Scalabilité de MongoDBMongoDB
 
Meetup vault - ScaaS Secrets as a Service
Meetup vault - ScaaS Secrets as a ServiceMeetup vault - ScaaS Secrets as a Service
Meetup vault - ScaaS Secrets as a Service
Frederic Leger
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Aurelien Navarre
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
Christophe Villeneuve
 
Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017
AFUP_Limoges
 
Maltacademy: securing your k8s cluster with CNCF falco
Maltacademy: securing your k8s cluster with CNCF falcoMaltacademy: securing your k8s cluster with CNCF falco
Maltacademy: securing your k8s cluster with CNCF falco
Frederic Leger
 
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
Microsoft
 
Squid
SquidSquid

Tendances (20)

É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
 
Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017Sécuriser & chiffrer Mariadb - JDLL 2017
Sécuriser & chiffrer Mariadb - JDLL 2017
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
 
Cassandra pour les développeurs java
Cassandra pour les développeurs javaCassandra pour les développeurs java
Cassandra pour les développeurs java
 
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvert
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
 
Riak introduction
Riak introductionRiak introduction
Riak introduction
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013
 
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
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
 
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchéesDrupalCamp Lyon 2012 -  Optimiser les performances Drupal depuis les tranchées
DrupalCamp Lyon 2012 - Optimiser les performances Drupal depuis les tranchées
 
Scalabilité de MongoDB
Scalabilité de MongoDBScalabilité de MongoDB
Scalabilité de MongoDB
 
Meetup vault - ScaaS Secrets as a Service
Meetup vault - ScaaS Secrets as a ServiceMeetup vault - ScaaS Secrets as a Service
Meetup vault - ScaaS Secrets as a Service
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017
 
Maltacademy: securing your k8s cluster with CNCF falco
Maltacademy: securing your k8s cluster with CNCF falcoMaltacademy: securing your k8s cluster with CNCF falco
Maltacademy: securing your k8s cluster with CNCF falco
 
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
 
Squid
SquidSquid
Squid
 

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 - JDLL
Christophe Villeneuve
 
RGAA3 et votre projet drupal - drupalfr
RGAA3 et votre projet drupal - drupalfrRGAA3 et votre projet drupal - drupalfr
RGAA3 et votre projet drupal - drupalfr
Christophe Villeneuve
 
Le service workers
Le service workersLe service workers
Le service workers
Christophe Villeneuve
 
Les fonctions MariaDB - LeMug.fr
Les fonctions MariaDB - LeMug.frLes fonctions MariaDB - LeMug.fr
Les fonctions MariaDB - LeMug.fr
Christophe 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 - JDLL
Christophe Villeneuve
 
Firefox OS - Api battery status
Firefox OS - Api battery statusFirefox OS - Api battery status
Firefox OS - Api battery status
Christophe Villeneuve
 
Le Baromètre des Technologies web - Février 2016
Le Baromètre des Technologies web - Février 2016Le Baromètre des Technologies web - Février 2016
Le Baromètre des Technologies web - Février 2016
Yassine Tahra
 
Redes
Redes Redes
Redes
Dany Paredes
 
Ppprueba
PppruebaPpprueba
Ppprueba
Pablo
 
Diapositivas M Aria
Diapositivas M AriaDiapositivas M Aria
Diapositivas M Aria
guesta678d8
 
Método de Gauss
Método de GaussMétodo de Gauss
Método de Gauss
hijhij
 
Evaluacion felipe guiza logistica1
Evaluacion felipe guiza logistica1Evaluacion felipe guiza logistica1
Evaluacion felipe guiza logistica1
andres felipe güiza peñaloza
 
Integración -inclusión
Integración -inclusiónIntegración -inclusión
Integración -inclusión
edit kremenezer
 
Pauuuuuuu
PauuuuuuuPauuuuuuu
Pauuuuuuu
pauhf
 
Las aventuras del pequeño chiri
Las aventuras del pequeño chiriLas aventuras del pequeño chiri
Las aventuras del pequeño chiri
Elisa
 
Grupo4 Idi Marzo10 M2 3
Grupo4 Idi Marzo10 M2 3Grupo4 Idi Marzo10 M2 3
Gans test
Gans testGans test
Gans testNSGANS
 
Amor y muerte en eatc
Amor y muerte en eatcAmor y muerte en eatc
Amor y muerte en eatc
JOSÉ TOMÁS
 

En vedette (20)

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
 
Les fonctions MariaDB - LeMug.fr
Les fonctions MariaDB - LeMug.frLes fonctions MariaDB - LeMug.fr
Les fonctions MariaDB - LeMug.fr
 
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
 
Le Baromètre des Technologies web - Février 2016
Le Baromètre des Technologies web - Février 2016Le Baromètre des Technologies web - Février 2016
Le Baromètre des Technologies web - Février 2016
 
Redes
Redes Redes
Redes
 
Ppprueba
PppruebaPpprueba
Ppprueba
 
Diapositivas M Aria
Diapositivas M AriaDiapositivas M Aria
Diapositivas M Aria
 
Método de Gauss
Método de GaussMétodo de Gauss
Método de Gauss
 
Evaluacion felipe guiza logistica1
Evaluacion felipe guiza logistica1Evaluacion felipe guiza logistica1
Evaluacion felipe guiza logistica1
 
Integración -inclusión
Integración -inclusiónIntegración -inclusión
Integración -inclusión
 
Pauuuuuuu
PauuuuuuuPauuuuuuu
Pauuuuuuu
 
Las aventuras del pequeño chiri
Las aventuras del pequeño chiriLas aventuras del pequeño chiri
Las aventuras del pequeño chiri
 
Grupo4 Idi Marzo10 M2 3
Grupo4 Idi Marzo10 M2 3Grupo4 Idi Marzo10 M2 3
Grupo4 Idi Marzo10 M2 3
 
FLS
FLSFLS
FLS
 
Gans test
Gans testGans test
Gans test
 
ma ville
ma villema ville
ma ville
 
Amor y muerte en eatc
Amor y muerte en eatcAmor y muerte en eatc
Amor y muerte en eatc
 

Similaire à Mariadb pour les developpeurs - OSDC

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
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 - TechDays
Christophe Villeneuve
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
yllieth
 
Methodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlMethodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysql
Codizy
 
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
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
Kenny Dits
 
1 2-3-grails
1 2-3-grails1 2-3-grails
1 2-3-grails
Nancy Deschênes
 
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
GAB 2015  - Nouveautes sur le stockage de donnees dans AzureGAB 2015  - Nouveautes sur le stockage de donnees dans Azure
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
Jean-Luc Boucho
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
PrestaShop
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Neo4j
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
XavierPestel
 
Meetup juin2013
Meetup juin2013Meetup juin2013
Meetup juin2013nperu
 
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure PackLe cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Microsoft Décideurs IT
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
MongoDB
 
MariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentationMariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentation
MariaDB plc
 
Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...
Identity Days
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
Geoffroy Arnoud
 
Liquibase en action
Liquibase en actionLiquibase en action
Liquibase en action
Florent Biville
 

Similaire à Mariadb pour les developpeurs - OSDC (20)

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
 
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
 
AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
 
Methodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlMethodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysql
 
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 ?
 
Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
 
1 2-3-grails
1 2-3-grails1 2-3-grails
1 2-3-grails
 
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
GAB 2015  - Nouveautes sur le stockage de donnees dans AzureGAB 2015  - Nouveautes sur le stockage de donnees dans Azure
GAB 2015 - Nouveautes sur le stockage de donnees dans Azure
 
Performance et optimisation de PrestaShop
Performance et optimisation de PrestaShopPerformance et optimisation de PrestaShop
Performance et optimisation de PrestaShop
 
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Meetup juin2013
Meetup juin2013Meetup juin2013
Meetup juin2013
 
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure PackLe cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
Le cloud-in-a-box avec Cloud Platform System (CPS) et Windows Azure Pack
 
Inf208
Inf208Inf208
Inf208
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
MariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentationMariaDB Paris Workshop 2023 - DARVA presentation
MariaDB Paris Workshop 2023 - DARVA presentation
 
Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...Récupération d’un Active Directory: comment repartir en confiance après une c...
Récupération d’un Active Directory: comment repartir en confiance après une c...
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
 
Liquibase en action
Liquibase en actionLiquibase en action
Liquibase en action
 

Plus de Christophe Villeneuve

MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
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 Firefox
Christophe Villeneuve
 
pister les pisteurs
pister les pisteurspister les pisteurs
pister les pisteurs
Christophe 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 web
Christophe 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 gagnante
Christophe Villeneuve
 
Pentest bus pirate
Pentest bus piratePentest bus pirate
Pentest bus pirate
Christophe 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 design
Christophe Villeneuve
 
Foxfooding semaine 3
Foxfooding semaine 3Foxfooding semaine 3
Foxfooding semaine 3
Christophe Villeneuve
 
Foxfooding
FoxfoodingFoxfooding
Accessibilite web wcag rgaa
Accessibilite web wcag rgaaAccessibilite web wcag rgaa
Accessibilite web wcag rgaa
Christophe Villeneuve
 
Mozilla french speaking community activites
Mozilla french speaking community activitesMozilla french speaking community activites
Mozilla french speaking community activites
Christophe Villeneuve
 
Monitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et MicrosoftMonitoring dynamique : Grafana et Microsoft
Monitoring dynamique : Grafana et Microsoft
Christophe Villeneuve
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
Christophe Villeneuve
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
Christophe Villeneuve
 
Send large files with addons
Send large files with addonsSend large files with addons
Send large files with addons
Christophe Villeneuve
 
Tests d'accessibilite par la pratique
Tests d'accessibilite par la pratiqueTests d'accessibilite par la pratique
Tests d'accessibilite par la pratique
Christophe Villeneuve
 
Donnez la voix aux machines
Donnez la voix aux machinesDonnez la voix aux machines
Donnez la voix aux machines
Christophe 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 applications
Christophe 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 devtools
Christophe 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 pour les developpeurs - OSDC

  • 1. MariaDB pour les développeurs 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. Les points d'aujourd'hui ● Une histoire simple ● MySQL 5.x ←→ MariaDB 5.x ● MariaDB 10.x ● Les bases ● MariaDB dans vos développements
  • 4.
  • 5. L'origine Dates importantes ✔ 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) Une histoire simple
  • 6. ✔ De nos jours... MySQL Forks ✔ N° 1 dans le monde ✔ 500k Download (depuis 2003) ✔ + 13M installation active ✔ MySQL Oracle ✔ Drizzle ✔ Percona ✔ MariaDB Et maintenant
  • 7.
  • 8. 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 ✔ MariaDB 10.0.14 (Sept 14)
  • 11. 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
  • 13. 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é
  • 14. Performance MariaDB 10.1 et MySQL 5.7.4 https://blog.mariadb.org/performance-evaluation-of-mariadb-10-1-and-mysql-5-7-4-labs-tplc/
  • 15. 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
  • 16. Outils de dev : Environnement embarqué ✔ EasyPHP ✔ Xampp ✔ WampServer ✔ PHPserver ✔ WampMSS ✔ Neard
  • 17. Exemple 1 : wampserver ✔ DL MariaDB (http://mariadb.org) ✔ Installer dans 1 dossier MySQL ✔ Déplacer les BDD sauvegardées data ✔ Lancer Wampserver
  • 18. Exemple 2 : PHPServer ✔ DL PHPServer http://www.treshaut.net/viewtopic.php?t=28&p=71 ✔ Installation
  • 19. Exemple 2 : PHPServer avec phpMyAdmin
  • 20. Exemple 3 : Linux ✔ sudo apt-get install mariadb-server mariadb-client ✔ Vous retrouvez : ✔ /etc/mysql/my.cnf ✔ > mysql ✔ Au final
  • 21. Backup Pour vos requêtes ✔ MySQLdump ✔ XtraBackup ✔ mysqlhotcopy (MyISAM) ✔ XtraBackup manager (PHP) ✔ ... ✔ MySQL Workbench ✔ SkySQL visual Editor (SQLYog) ✔ HeidiSQL ✔ PhpMyAdmin ✔ Toad For MySQL ✔ ... Outils
  • 22. 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
  • 24. ✔ Précision date-heure ✔ Avant ✔ TIME ✔ DATETIME ✔ TIMESTAMP ✔ Dispo MariaDB 5.3+ ✔ temporal functions ✔ CAST ✔ dynamic columns Les fonctions (1/5) Microseconds
  • 25. Avant MariaDB 5.3+ ✔ 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)
  • 26. ✔ Dispo MariaDB 5.2+ ✔ Colonne dans une table qui sa valeur calculée automatiquement ✔ 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/
  • 27. 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;
  • 28. 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;
  • 29. ✔ Dispo MariaDB 10.0+ ✔ Expressions régulières ✔ 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/
  • 30. 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
  • 31. Exemple (PCRE) (2/2) ✔ Retourne la partie correspondante d'une chaine ✔ SELECT REGEXP_SUBSTR( 'https://www.osdc.fr/content/contact', 'https?://[^/]*') ✔ → https://www.osdc.fr
  • 32. ✔ Dispo MariaDB 10+ ✔ Inspiré de PostgreSQL ✔ Supprimer les opérations qui renvoient un ensemble de ligne supprimées Les fonctions (4/5) Microseconds Colonnes virtuelles PCRE Delete... Returning
  • 33. Exemple (Delete...returning) ✔ DELETE FROM tests WHERE status = 'DONE' RETURNING *; ✔ → 5
  • 34. ✔ 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 Les fonctions (5/5) Microseconds Colonnes virtuelles REG EXP Delete... Returning Colonnes Dynamiques
  • 35. 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
  • 36. Exemple (colonne dynamique) 2/2 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 ID type_id Prix 1 2 3 4 5 6 1 1 10 bleu M 2 2 400 Ram 800 2048
  • 38. Moteur de stockage storage engine
  • 39. 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';
  • 40. 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'; Entier Poids Votre requete Group Indexation Requete
  • 41. 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
  • 42. 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
  • 43. CassandraSE : Utilisation (2/2) > insert into t1 values ('rowkey10', 'data1-value', 123456), ('rowkey11', 'data1-value2', 34543); > select * from t1 where rowkey='rowkey11';
  • 44. 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
  • 45. Connect : exemple CSV ● Fichier – first,last,birthday – "Christophe","Villeneuve","Jan 1" – "PHP","ODBC","Nov 22" > 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 | ODBC | Nov 22 | +---------------+---------------+-------------+
  • 46. 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)
  • 47. 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
  • 49. 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
  • 51. 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/
  • 52. Merci Ressources ● MariaDB : https://mariadb.com/kb/en/ ● Planet mariaDB : http://planetmariadb.org/ ● Blog http://serge.frezefond.com/