Upload
christophe-villeneuve
View
693
Download
5
Embed Size (px)
DESCRIPTION
Présentation effectuée à l'OSDC & Open World Forum 2013 - Track Code par Christophe Villeneuve
Citation preview
MySQL & MariaDB dans le web
Christophe Villeneuve
@hellosct1
ChristopheVilleneuve
Qui ?
Le 5 octobre 2013
✔ Histoire✔ Un choix✔ En mode avancé✔ En pratique
Sommaire
Le 5 octobre 2013
✔ Fondé par✔ Monty Widenius✔ David Axmark
✔ 1983 – 1ère idée✔ Fondé en 1995 ✔ 2007 Préparation pour
Nasdaq✔ 2008 Rachat par Sun✔ 2009 Sun racheté par
Oracle✔ Promesse de Oracle
sur 5 ans (fin 2009)
L'origine Dates importantes
Histoire de début
Le 5 octobre 2013
✔ N° 1 dans le monde✔ 50k Download (depuis
2003)✔ + 13M installation
active
✔ MySQL Oracle✔ Drizzle✔ Percona✔ MariaDB
✔ De nos jours... MySQL Forks
Et maintenant
Le 5 octobre 2013
Présentation des forks
Le 5 octobre 2013
✔ 1983✔ 1995 Création de
MySQL✔ 1999 MySQL 3.23✔ 2000 InnoDB✔ 2003 MySQL 3.23 GA✔ 2004 MySQL 4.1 GA✔ 2005 Oracle avec
InnoDB✔ 2005 MySQL 5.0 GA
✔ 2008 MySQL 5.1GA(Sun)
✔ 2010 MySQL 5.5 GA (Oracle)
✔ 2011 Modules de codes source fermé
✔ 2013 MySQL 5.6 GA✔ ??? MySQL 5.7
Les grandes dates de MySQL
Le 5 octobre 2013
✔ Mi 2008 début✔ Mars 2011 1ère
version GA
✔ Version redessinée de MySQL 6.0
✔ Basé sur Micro-kernel + simple & + léger
✔ En ligne de commande
✔ BDD du coté serveur✔ GPL v2
Drizzle les points forts
Le 5 octobre 2013
✔ Dec 2008 : 1ère released✔ 2010 Percona 5.5✔ Juin 2013 Percona 5.6
✔ XtraDB au lieu de InnoDB✔ Plus d'instrumentation
✔ Nombreux outils✔ Amélioration Restart✔ Performance✔ Statistiques
Les étapes de Percona Server
Le 5 octobre 2013
✔ Communauté d'amis✔ 100 % Open source et
compatible MySQL✔ Plateforme d'innovation✔ Des commiteurs
✔ Dec 2008 Création de Monty Program
→ Monty Widenius✔ MariaDB 5.1 (Fev 2010)✔ MariaDB 5.2 (Nov 2010)✔ MariaDB 5.3 (Avril 2012)✔ MariaDB 5.5 (Avril 2012)✔ MariaDB 10.0a (Nov 2012)
1er semestre 2013✔ 2013 Fondation✔ MariaDB 10.0.1
(fin 2013)Galera people
Compression Multimaster Replication
MariaDB : un jeune projet... MATURE
Le 5 octobre 2013
✔ MariaDB 5.1 → MySQL 5.1✔ MariaDB 5.2 → MariaDB 5.1✔ MariaDB 5.3 → MariaDB 5.2✔ MariaDB 5.5 → MariaDB 5.3 + MySQL 5.5✔ MariaDB 10.0 → MariaDB 5.5 + MySQL 5.6✔ MariaDB 5.6 → MariaDB 5.5 + MySQL 5.6
Fin 2013✔ MariaDB 10.0.1 → MariaDB 5.6 + MariaDB 10.0
Repère des versions
Le 5 octobre 2013
✔ Plus de storages✔ Vitesse
✔ Innodb, replication, stockage...✔ Nombreuses extensions et fonctionnalités
✔ Colonnes virtuelles, colonne dynamique, multi...✔ Plus de tests
✔ Tests correctifs, réactivités...✔ Code source ouvert✔ Développé par la communauté
En un mot... MariaDB vs MySQL
Le 5 octobre 2013
Mode avancé
Le 5 octobre 2013
✔ PHP (driver natif) → BSD licence✔ Python✔ Perl✔ Ruby✔ .NET avec MyODBC ✔ JDBC (basé sur drizzle driver)✔ C✔ Oracle connector (licence GPL)
Tous sont LGPL → Aucune licence commerciale
Connecteurs
Le 5 octobre 2013
Cassandra SE✔ A partir de MariaDB 5.3✔ NoSQL / NewSQL
✔ Données non structurées✔ Réplication rapide
✔ Assurer l'intégration des données SQL / NoSQL✔ Mapping possible
Storages engines 1/4
Le 5 octobre 2013
➢Cassandra➢TokuDB
✔ (R)Tokutek & MariaDB✔ Natif MariaDB 5.5 & 10.0✔Tech : Utilise l'arbre fractal
✔ Amélioration indexation✔ Amélioration des requêtes
✔ Schéma de vitesse✔ Compression✔ Réplication✔ Souple
Storages engine 2/4
Le 5 octobre 2013
➢Cassandra➢TokuDB➢Connect
✔ MariaDB 10.0✔ Lecture / Ecriture / MAJ
✔ TXT✔ DBF✔ .INI✔ .XML✔ ODBC
✔ Locale ou distant✔ Possible de faire le sien
Storages engine 3/4
Le 5 octobre 2013
➢Cassandra➢TokuDB➢Connect
A partir de 5.1
✔ PBXT(Désactiver 5.5)✔ XtraDB (old innoDB)✔ FederatedX✔ Aria (old MyISAM)
Storages engine 4/4
Le 5 octobre 2013
➢Cassandra➢TokuDB➢Connect
A partir de 5.1
✔ OQGraph (moteur info)✔ SphinxSE (=search)
A partir de 5.2
Storages engines 4/4
Le 5 octobre 2013
✔ Pont entre les BDD relationnelles et non relationnelles
✔ Toutes les colonnes stockées dans un « blob »✔ Possibilité de le manipuler✔ Possibilité de créer des index Virtuels
Colonnes Dynamiques
Le 5 octobre 2013
CREATE TABLE t1 (
ID int
auto_increment
primary key,
Type_id int,
Prix decimal(7,2),
extra blob
);
COLUMN_CREATE(
column_nr,
value [as type],
[
column_nr,
value [as type]
],
...)
INSERT into t1 values (NULL, 1 , 10, COLUMN_CREATE(1, 'bleu', 2 , 'M'));
INSERT into t1 values (NULL, 2 , 400, COLUMN_CREATE(3, 'RAM', 5 , 800));
UPDATE t1 SET extra = COLUMN_ADD(extra, 6 , 2048) WHERE id=2;
Coloris / Taille / Matériel / Vide / hard / optionID / Type_id / Prix
Création d'une colonne dynamique
Le 5 octobre 2013
Exemple plus réaliste
Le 5 octobre 2013
SELECT ...
FROM table1
WHERE table1_col IN (
SELECT table2_col
FROM table2
WHERE table2_subq)
AND table1_where;
Optimizer_switch='semijoin=on'Materialization=on / offin_to_exists = on/offtmp_table_sizemax_heap_table_size
Optimizer_switch='semijoin=on'Materialization=on / offin_to_exists = on/offtmp_table_sizemax_heap_table_size
Subquery... MariaDB 5.3 + MySQL 5.6
Le 5 octobre 2013
✔ Moteur de table (storages engines) natif✔ Réplication multisource✔ NOW() à la place de DATETIME✔ Amélioration des informations erreurs✔ Amélioration schéma de performance ✔ InnoDB✔ Replication✔ Statistics & Monitoring✔ Optimizer✔ Performance
MariaDB 10.0
Le 5 octobre 2013http://blog.mariadb.org/mariadb-5-3-optimizer-benchmark/
Performance
Le 5 octobre 2013
En pratique
Le 5 octobre 2013
✔ EasyPHP✔ Xampp✔ WampServer✔ PHPserver✔ WampMSS
Environnement embarqué
Le 5 octobre 2013
✔ DL MariaDB (http://mariadb.org)✔ Installer dans 1 dossier MySQL✔ Déplacer les BDD sauvegardées \data\✔ Lancer Wampserver
Exemple 1 : wampserver
Le 5 octobre 2013
✔ DL PHPServerhttp://www.treshaut.net/viewtopic.php?t=28&p=71
✔ Installation
Exemple 2 : PHPServer
Le 5 octobre 2013
Exemple 2 : PHPServer avec phpMyAdmin
Le 5 octobre 2013
✔ sudo apt-get install mariadb-server mariadb-client
✔ Vous retrouvez :✔ /etc/mysql/my.cnf✔ > mysql
✔ Au final
Exemple 3 : Linux
Le 5 octobre 2013
✔ MySQLdump✔ XtraBackup✔ mysqlhotcopy
(MyISAM)✔ XtraBackup manager
(PHP)✔ ...
✔ MySQL Workbench✔ SkySQL visual Editor
(SQLYog)✔ HeidiSQL✔ PhpMyAdmin✔ Toad For MySQL✔ ...
Backup Pour vos requêtes
Outils
GO MariaDB
Le 5 octobre 2013
Apprentissage
Le 5 octobre 2013
✔ Distributions✔ OpenSUSE 12.3✔ Gentoo✔ FreeBSD✔ Homebrew✔ Slackware✔ ArchLinux✔ Fédora 7.0✔ ...
✔ Dec 2012 Wikipedia✔ 2013
✔ Blog de Mozilla✔ Google Developer
Ceux qui ont déjà sauté...
Le 5 octobre 2013
Merci