6.
✔ 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)
L'origine Dates importantes
Une histoire simple
7.
✔ N° 1 dans le monde
✔ 500k Download (depuis
2003)
✔ + 13M installation active
✔ MySQL Oracle
✔ Drizzle
✔ Percona
✔ MariaDB
✔ De nos jours... MySQL Forks
Et maintenant
8.
9.
✔ 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.0 (Nov 2012)
✔
2013 Fondation
✔
MariaDB 10.0.17 (Mars 15)
✔
MariaDB 10.1Galera people
Compression Multimaster
Replication
MariaDB : un projet mature
14.
✔ Plus de storages
✔ Vitesse
✔ Innodb, replication, stockage...
✔ Nombreuses extensions et fonctionnalités
✔ Colonnes virtuelles, colonne dynamique, multi...
✔ Plus de tests
✔ Tests correctifs, réactivités...
✔ Code source ouvert
✔ Développé par la communauté
En un mot... MariaDB
18.
✔ EasyPHP
✔ Xampp
✔ WampServer
✔ PHPserver
✔ WampMSS
✔ Neard
Outils de dev : Environnement embarqué
3 exemples :
1 environnement déjà existant (Wampserver)
1 nouvel environnement (Neard)
Linux
19.
✔ DL MariaDB (http://mariadb.org)
✔ Installer dans 1 dossier MySQL
✔ Déplacer les BDD sauvegardées data
✔ Lancer Wampserver
Exemple 1 : wampserver (1/2)
24.
Outils
✔ MySQL Workbench
✔ SkySQL visual Editor
(SQLYog)
✔ HeidiSQL
✔ PhpMyAdmin
✔ Toad For MySQL
✔ ...
Pour vos requêtes
✔ MySQLdump
✔ XtraBackup
✔ mysqlhotcopy (MyISAM)
✔ XtraBackup manager (PHP)
✔ ...
Backup
25.
26.
✔ Précision date-heure
✔ Avant
✔ TIME
✔ DATETIME
✔ TIMESTAMP
✔ Dispo MariaDB 5.3+
✔ temporal functions
✔ CAST
✔ dynamic columns
Microseconds
Les fonctions (1/5)
27.
✔ 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 ;
Avant MariaDB 5.3+
Exemple (Microseconds)
28.
✔ 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
Microseconds
Colonnes virtuelles
Les fonctions (2/5)
Source : https://mariadb.com/kb/en/virtualcolumns/
29.
✔ 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) (1/2)
30.
✔ INSERT INTO table1 VALUES
✔ (1, 'some text',default,default),
✔ (2, 'more text',5,default),
✔ (123, 'even more text',default,'something');
✔ Select * from table1;
Exemple (Colonnes Virtuelles) (2/2)
32.
✔ Fonction de remplace
✔ SELECT REGEXP_REPLACE('ab12cd','[0-9]','') AS r;
→ abcd
Exemple (PCRE) (1/2)
✔ Retourne 1ère position
✔ SELECT REGEXP_INSTR('abc','b') ;
→ 2
✔ SELECT REGEXP_INSTR('hello','o') ;
→ 5
33.
✔ Retourne la partie correspondante d'une chaine
✔ SELECT REGEXP_SUBSTR(
'http://www.jdll.org/pratique/#Train',
'https?://[^/]*')
✔
→ https://www.jdll.org
Exemple (PCRE) (2/2)
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
Microseconds
Colonnes virtuelles
REG EXP
Les fonctions (4/5)
Colonnes Dynamiques
38.
✔ Dispo MariaDB 10.0.3+
✔ Une fonction en Storage
Engine
✔ Pas de création & pas de
lecture de table
✔ Principe
✔ Génère à la volée une
séquence de nombres
entiers
✔ Retourne le résultat
✔ Fonction Disparait
✔Plugin : ha_sequence
Microseconds
Colonnes virtuelles
REG EXP
Les fonctions (5/5)
Sequence Engine
REG EXP
Colonnes Dynamiques
40.
Exemple (Sequence Engine) 2/2
✔ Calcul de date
Ex : Connaître le jour de la semaine d'une date
donnée :
✔ exemple : Le 1er Janvier tombe… Quand ?
> SELECT
DAYNAME('2015-01-01' + INTERVAL (seq) YEAR) day,
'2015-01-01' + INTERVAL (seq) YEAR date
FROM seq_0_to_10;
44.
Manipuler les données : 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]
pluginload=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 |
++++
47.
Recherche SphinxSE
● Dispo MariaDB 5.2+
● Recherche Fulltext
● Ne stocke pas les données
● Client haut pour permettre à MariaDB de parler à Sphinx
searchd
● Installation dans My.cnf
[mysqld]
pluginload= 'ha_sphinx.so';
54.
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 œuvre 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/storageengines/