SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
L'importance des Forks de MySQL


        Christophe Villeneuve



            17 avril 2013
Sommaire


 ✔
     Histoire
 ✔
     Un choix
 ✔
     En mode avancé
 ✔
     En pratique




      nAcademy – 17 Avril 2013
Histoire du début


     L'origine                       Dates importantes
 ✔
     Fondé par                   ✔
                                     1983 – 1ère idée
         ✔
             Monty Widenius      ✔
                                     Fondé en 1995
         ✔
             David Axmark        ✔
                                     2007 Préparation pour
                                     Nasdaq
                                 ✔
                                     2008 Rachat par Sun
                                 ✔
                                     2009 Sun racheté par
                                     Oracle
                                 ✔
                                     Promesse de Oracle sur
                                     5 ans (fin 2009)

      nAcademy – 17 Avril 2013
Et maintenant

 ✔
     De nos jours... MySQL           Forks
 ✔
     N° 1 dans le monde          ✔
                                     MySQL Oracle
 ✔
     50k Download (depuis        ✔
                                     Drizzle
     2003)                       ✔
                                     Percona
 ✔
     + 13M installation active   ✔
                                     MariaDB




      nAcademy – 17 Avril 2013
Présentation des Forks




    nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
Les grandes dates de MySQL

 ✔
     1983                        ✔
                                     2008 MySQL 5.1GA(Sun)
 ✔
     1995 Création de MySQL      ✔
                                     2010 MySQL 5.5 GA
                                     (Oracle)
 ✔
     1999 MySQL 3.23
                                 ✔
                                     2011 Modules de codes
 ✔
     2000 InnoDB
                                     source fermé
 ✔
     2003 MySQL 3.23 GA          ✔
                                     2013 MySQL 5.6 GA
 ✔
     2004 MySQL 4.1 GA           ✔
                                     ??? MySQL 5.7
 ✔
     2005 Oracle avec InnoDB
 ✔
     2005 MySQL 5.0 GA




      nAcademy – 17 Avril 2013
Que trouve-t-on dans MySQL 5.6 ?
 ✔
         Optimisation                          ✔
                                                   Sous requêtes (Subquery)
          ✔
                  Exécution requêtes                        ✔
                                                                 In-to-exists
          ✔
                  Plus disponibilité
                                                            ✔
                                                                 Semi-join
          ✔
                  Performance schéma
                                                            ✔
                                                                 Materialization
     Amélioration
                                                   Amélioration
 ✔
                                               ✔
     ✔
         Lecture de lignes avec intervalle
     ✔
         Mode séquentielle au lieu aléatoire        ✔
                                                        PERFORMANCE_SCHEMA
     ✔
         Index Condition Pushdown (ICP)
     ✔
         Amélioration des petites LIMIT
                                                    ✔
                                                        Information_schema



 ✔
     Fonctionnalité                            ✔
                                                   Scalability
              ✔
                  MemcacheD API innodb                  ✔
                                                                Support des Logs
              ✔
                  SHA 256 authentification
              ✔
                  Microsecond Time précision
                                                        ✔
                                                                Data dictionary cache
              ✔
                  Interface NoSQL                       ✔
                                                                Group commit
              nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
Drizzle les points forts

 ✔
     Mi 2008 début               ✔
                                     Version redessinée de
                                     MySQL 6.0
 ✔
     Mars 2011 1ère version
     GA                          ✔
                                     Basé sur Micro-kernel
                                       + simple & + léger
                                 ✔
                                     En ligne de commande
                                 ✔
                                     BDD du coté serveur
                                 ✔
                                     GPL v2




      nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
Les étapes Percona Server

 ✔
     Dec 2008 : 1ère released    ✔
                                     XtraDB au lieu de InnoDB
 ✔
     2010 Percona 5.5            ✔
                                     Plus d'instrumentation
 ✔
     Juin 2013 Percona 5.6              ✔
                                            Nombreux outils
                                 ✔
                                     Amélioration Restart
                                 ✔
                                     Performance
                                 ✔
                                     Statistiques




      nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
MariaDB : Un jeune projet... MATURE

 ✔
     Communauté d'amis                         ✔
                                                   Dec 2008 Création de
                                                   Monty Program
 ✔
     100 % Open source et
     compatible MySQL                                   → Monty Widenius
 ✔
     Plateforme d'innovation
                                               ✔
                                                   MariaDB 5.1 (Fev 2010)
 ✔
     Des commiteurs
                                               ✔
                                                   MariaDB 5.2 (Nov 2010)
                                               ✔
                                                   MariaDB 5.3 (Avril 2012)
                                               ✔
                                                   MariaDB 5.5 (Avril 2012)
                                               ✔
                                                   MariaDB 10.0a (Nov
 Compression                     Multimaster
                                 Replication
                                                   2012) 1er semestre 2013
                                               ✔
                                                   2013 Fondation
Galera people

      nAcademy – 17 Avril 2013
Repère des versions

 ✔
     MariaDB 5.1 → MySQL 5.1
 ✔
     MariaDB 5.2 → MariaDB 5.1
 ✔
     MariaDB 5.3 → MariaDB 5.2
 ✔
     MariaDB 5.5 → MariaDB 5.3 + MySQL 5.5
 ✔
     MariaDB 10.0 → MariaDB 5.5 + MySQL 5.6
 ✔
     MariaDB 5.6 → MariaDB 5.5 + MySQL 5.6


     Fin 2013
 ✔
     MariaDB 10.0.1 → MariaDB 5.6 + MariaDB 10.0


      nAcademy – 17 Avril 2013
nAcademy – 17 Avril 2013
Comparaison 1/3




   nAcademy – 17 Avril 2013   © Monty Widenius
Comparaison 2/3




   nAcademy – 17 Avril 2013   © Monty Widenius
Comparaison 3/3




   nAcademy – 17 Avril 2013   © Monty Widenius
En un mot... MariaDB vs MySQL

 ✔
     Plus de storages
 ✔
     Vitesse
     ✔
          Innodb, replication, stockage...
 ✔
     Nombreuses extensions et fonctionnalités
     ✔
          Colonnes virtuelles, colonne dynamique, multi...
 ✔
     Plus de tests
     ✔
          Tests correctifs, réactivités...
 ✔
     Code source ouvert
 ✔
     Développé par la communauté



         nAcademy – 17 Avril 2013
Mode avancé




   nAcademy – 17 Avril 2013
Connecteurs


 ✔
     PHP (driver natif) → BSD licence
 ✔
     Python
 ✔
     Ruby
 ✔
     .NET avec MyODBC
 ✔
     JDBC (basé sur drizzle driver)
 ✔
     C
 ✔
     Oracle connector (licence GPL)




     Tous sont LGPL → Aucune licence commerciale

      nAcademy – 17 Avril 2013
Storages engines 1/4


                               ✔
                                   A partir de MariaDB 5.3
 Cassandra SE                  ✔
                                   NoSQL / NewSQL
                                    ✔
                                        Données non structurées
                                    ✔
                                        Réplication rapide
                               ✔
                                Assurer l'intégration des
                               données SQL / NoSQL
                               ✔
                                   Mapping possible




    nAcademy – 17 Avril 2013
Storages engines 2/4



 ➢
     Cassandra                    ✔
                                      (R)Tokutek & MariaDB
 ➢
     TokuDB
                                  ✔
                                      Natif MariaDB 5.5 & 10.0
                                  Tech : Utilise l'arbre fractal
                                  ✔


                                      ✔
                                          Amélioration indexation
                                      ✔
                                          Amélioration des requêtes
                                            ✔
                                                Schéma de vitesse
                                            ✔
                                                Compression
                                            ✔
                                                Réplication
                                            ✔
                                                Souple



       nAcademy – 17 Avril 2013
Storages engines 3/4



 ➢
     Cassandra                    ✔
                                      MariaDB 10.0
 ➢
   TokuDB
                                  ✔
                                      Lecture / Ecriture / MAJ
 ➢
   Connect                               TXT
                                          ✔

                                       ✔
                                         DBF
                                       ✔
                                         .INI
                                       ✔
                                         .XML
                                       ✔
                                         ODBC
                                  ✔
                                    Locale ou distant
                                  ✔
                                      Possible de faire le sien


       nAcademy – 17 Avril 2013
Storages engines 4/4



 ➢
     Cassandra
 ➢
   TokuDB
                                  ✔
                                      PBXT (Désactiver 5.5)
                                  ✔
                                      XtraDB (old innoDB)
 ➢
   Connect                        ✔
                                      FederatedX
     A partir de 5.1              ✔
                                      Aria (old MyISAM)




       nAcademy – 17 Avril 2013
Storages engines 4/4



 ➢
     Cassandra
 ➢
   TokuDB
                                  ✔
                                      OQGraph (moteur info)
                                  ✔
                                      SphinxSE (=search)
 ➢
   Connect
     A partir de 5.1
     A partir de 5.2




       nAcademy – 17 Avril 2013
Colonnes dynamiques


 ✔
     Pont entre les BDD relationnelles et non
     relationnelles
 ✔
     Toutes les colonnes stockées dans un « blob »
 ✔
     Possibilité de le manipuler
 ✔
     Possibilité de créer des index Virtuels




      nAcademy – 17 Avril 2013
Création d'une colonne dynamique

CREATE TABLE t1 (                                 COLUMN_CREATE(
    ID int                                        column_nr,
          auto_increment                          value [as type],
          primary key,                            [
    Type_id int,                                  column_nr,
    Prix decimal(7,2),                            value [as type]
    extra 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;
                          ID / Type_id / Prix   Coloris / Taille / Matériel / Vide / hard / option

      nAcademy – 17 Avril 2013
Exemple plus réaliste




    nAcademy – 17 Avril 2013
Subquery... MariaDB 5.3+ / MySQL 5.6

   SELECT ...
   FROM table1
   WHERE table1_col IN (
                               SELECT table2_col
                               FROM table2
                               WHERE table2_subq)
   AND table1_where;

                                     Optimizer_switch='semijoin=on'
                                      Optimizer_switch='semijoin=on'
                                     Materialization=on / /off
                                      Materialization=on off
                                     in_to_exists = on/off
                                      in_to_exists = on/off
                                     tmp_table_size
                                      tmp_table_size
                                     max_heap_table_size
                                      max_heap_table_size

    nAcademy – 17 Avril 2013
MariaDB 10.0
 ✔
     Moteur de table (storages engines) natif
 ✔
     Réplication multisource
 ✔
     NOW() à la place de DATETIME
 ✔
     Amélioration des informations erreurs
 ✔
     Amélioration schéma de performance
 ✔
     InnoDB
 ✔
     Replication
 ✔
     Statistics & Monitoring
 ✔
     Optimizer
 ✔
     Performance




       nAcademy – 17 Avril 2013
Performance




   nAcademy – 17 Avril 2013   http://blog.mariadb.org/mariadb-5-3-optimizer-benchmark/
En pratique




    nAcademy – 17 Avril 2013
Environnement embarqué


 ✔
     EasyPHP
 ✔
     Xampp
 ✔
     WampServer
 ✔
     PHPserver
 ✔
     WampMSS




      nAcademy – 17 Avril 2013
Exemple 1 : Wampserver


 ✔
     DL MariaDB (http://mariadb.org)
 ✔
     Installer dans 1 dossier MySQL
 ✔
     Déplacer les BDD sauvegardées data
 ✔
     Lancer Wampserver




      nAcademy – 17 Avril 2013
Exemple 2 : PHPServer

 ✔
     DL PHPServer
     http://www.treshaut.net/viewtopic.php?t=28&p=71
 ✔
     Installation




      nAcademy – 17 Avril 2013
Exemple 2 : PHPServer avec phpMyAdmin




   nAcademy – 17 Avril 2013
Exemple 3 : Linux

 ✔
     sudo apt-get install mariadb-server mariadb-client


 ✔
     Vous retrouvez :
          ✔
              /etc/mysql/my.cnf
          ✔
              > mysql

 ✔
     Au final




      nAcademy – 17 Avril 2013
Outils


     Backup                           Pour vos requêtes
 ✔
     MySQLdump                    ✔
                                      MySQL Workbench
 ✔
     XtraBackup                   ✔
                                      SkySQL visual Editor
                                      (SQLYog)
 ✔
     mysqlhotcopy (MyISAM)
                                  ✔
                                      HeidiSQL
 ✔
     XtraBackup manager
     (PHP)                        ✔
                                      PhpMyAdmin
 ✔
     ...                          ✔
                                      Toad For MySQL
                                  ✔
                                      ...




       nAcademy – 17 Avril 2013
GO         MariaDB




nAcademy – 17 Avril 2013
Apprentissage




   nAcademy – 17 Avril 2013
Ceux qui ont sauté...


 ✔
     Distributions               ✔
                                     Dec 2012 Wikipedia
          ✔
              OpenSUSE 12.3      ✔
                                     2013
          ✔
              Gentoo                 ✔
                                         Blog de Mozilla
          ✔
              FreeBSD                ✔
                                         Google Developer
          ✔
              Homebrew
          ✔
              Slackware
          ✔
              ArchLinux
          ✔
              Fédora 7.0
          ✔
              ...



      nAcademy – 17 Avril 2013
Questions ?




    nAcademy – 17 Avril 2013

Contenu connexe

Plus de neuros

Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)neuros
 
Le service workers
Le service workersLe service workers
Le service workersneuros
 
Proteger votre vie privee sur internet
Proteger votre vie privee sur internetProteger votre vie privee sur internet
Proteger votre vie privee sur internetneuros
 
Le pouvoir d'être Visible ou Invisible sur Internet
Le pouvoir d'être Visible ou Invisible  sur InternetLe pouvoir d'être Visible ou Invisible  sur Internet
Le pouvoir d'être Visible ou Invisible sur Internetneuros
 
Vos projets web sur les plateformes ouvertes
Vos projets web sur les plateformes ouvertesVos projets web sur les plateformes ouvertes
Vos projets web sur les plateformes ouvertesneuros
 
Livre Drupal avance, un CMS pour développeurs
Livre Drupal avance, un CMS pour développeursLivre Drupal avance, un CMS pour développeurs
Livre Drupal avance, un CMS pour développeursneuros
 
Http2 les impacts dans le web
Http2 les impacts dans le webHttp2 les impacts dans le web
Http2 les impacts dans le webneuros
 
Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7neuros
 
RGAA 3 dans un Web Accessible
RGAA 3 dans un Web AccessibleRGAA 3 dans un Web Accessible
RGAA 3 dans un Web Accessibleneuros
 
Les effets de la loi Hamon
Les effets de la loi HamonLes effets de la loi Hamon
Les effets de la loi Hamonneuros
 
La sécurité et php
La sécurité et phpLa sécurité et php
La sécurité et phpneuros
 
Les protocoles temps réels
Les protocoles temps réelsLes protocoles temps réels
Les protocoles temps réelsneuros
 
Vectoriel et 3d en html5 - Animation newschool (partie 2)
Vectoriel et 3d en html5 - Animation newschool (partie 2)Vectoriel et 3d en html5 - Animation newschool (partie 2)
Vectoriel et 3d en html5 - Animation newschool (partie 2)neuros
 
Améliorer les performances SQL
Améliorer les performances SQLAméliorer les performances SQL
Améliorer les performances SQLneuros
 
Newschool partie1 methode HTML5
Newschool partie1 methode HTML5Newschool partie1 methode HTML5
Newschool partie1 methode HTML5neuros
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continuneuros
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalneuros
 
Integration Drupal systemes d'informations
Integration Drupal systemes d'informationsIntegration Drupal systemes d'informations
Integration Drupal systemes d'informationsneuros
 
La maitrise des contenus hors internet
La maitrise des contenus hors internetLa maitrise des contenus hors internet
La maitrise des contenus hors internetneuros
 
La mémoire et PHP
La mémoire et PHPLa mémoire et PHP
La mémoire et PHPneuros
 

Plus de neuros (20)

Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)Solution pour un Réseau Social d'Entreprise (RSE)
Solution pour un Réseau Social d'Entreprise (RSE)
 
Le service workers
Le service workersLe service workers
Le service workers
 
Proteger votre vie privee sur internet
Proteger votre vie privee sur internetProteger votre vie privee sur internet
Proteger votre vie privee sur internet
 
Le pouvoir d'être Visible ou Invisible sur Internet
Le pouvoir d'être Visible ou Invisible  sur InternetLe pouvoir d'être Visible ou Invisible  sur Internet
Le pouvoir d'être Visible ou Invisible sur Internet
 
Vos projets web sur les plateformes ouvertes
Vos projets web sur les plateformes ouvertesVos projets web sur les plateformes ouvertes
Vos projets web sur les plateformes ouvertes
 
Livre Drupal avance, un CMS pour développeurs
Livre Drupal avance, un CMS pour développeursLivre Drupal avance, un CMS pour développeurs
Livre Drupal avance, un CMS pour développeurs
 
Http2 les impacts dans le web
Http2 les impacts dans le webHttp2 les impacts dans le web
Http2 les impacts dans le web
 
Php 7 Think php7
Php 7 Think php7Php 7 Think php7
Php 7 Think php7
 
RGAA 3 dans un Web Accessible
RGAA 3 dans un Web AccessibleRGAA 3 dans un Web Accessible
RGAA 3 dans un Web Accessible
 
Les effets de la loi Hamon
Les effets de la loi HamonLes effets de la loi Hamon
Les effets de la loi Hamon
 
La sécurité et php
La sécurité et phpLa sécurité et php
La sécurité et php
 
Les protocoles temps réels
Les protocoles temps réelsLes protocoles temps réels
Les protocoles temps réels
 
Vectoriel et 3d en html5 - Animation newschool (partie 2)
Vectoriel et 3d en html5 - Animation newschool (partie 2)Vectoriel et 3d en html5 - Animation newschool (partie 2)
Vectoriel et 3d en html5 - Animation newschool (partie 2)
 
Améliorer les performances SQL
Améliorer les performances SQLAméliorer les performances SQL
Améliorer les performances SQL
 
Newschool partie1 methode HTML5
Newschool partie1 methode HTML5Newschool partie1 methode HTML5
Newschool partie1 methode HTML5
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
Effectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupalEffectuer des tests modernes pour drupal
Effectuer des tests modernes pour drupal
 
Integration Drupal systemes d'informations
Integration Drupal systemes d'informationsIntegration Drupal systemes d'informations
Integration Drupal systemes d'informations
 
La maitrise des contenus hors internet
La maitrise des contenus hors internetLa maitrise des contenus hors internet
La maitrise des contenus hors internet
 
La mémoire et PHP
La mémoire et PHPLa mémoire et PHP
La mémoire et PHP
 

L Importance des forks de MySQL

  • 1. L'importance des Forks de MySQL Christophe Villeneuve 17 avril 2013
  • 2. Sommaire ✔ Histoire ✔ Un choix ✔ En mode avancé ✔ En pratique nAcademy – 17 Avril 2013
  • 3. Histoire du début L'origine Dates importantes ✔ Fondé par ✔ 1983 – 1ère idée ✔ Monty Widenius ✔ Fondé en 1995 ✔ David Axmark ✔ 2007 Préparation pour Nasdaq ✔ 2008 Rachat par Sun ✔ 2009 Sun racheté par Oracle ✔ Promesse de Oracle sur 5 ans (fin 2009) nAcademy – 17 Avril 2013
  • 4. Et maintenant ✔ De nos jours... MySQL Forks ✔ N° 1 dans le monde ✔ MySQL Oracle ✔ 50k Download (depuis ✔ Drizzle 2003) ✔ Percona ✔ + 13M installation active ✔ MariaDB nAcademy – 17 Avril 2013
  • 5. Présentation des Forks nAcademy – 17 Avril 2013
  • 6. nAcademy – 17 Avril 2013
  • 7. Les grandes dates de MySQL ✔ 1983 ✔ 2008 MySQL 5.1GA(Sun) ✔ 1995 Création de MySQL ✔ 2010 MySQL 5.5 GA (Oracle) ✔ 1999 MySQL 3.23 ✔ 2011 Modules de codes ✔ 2000 InnoDB source fermé ✔ 2003 MySQL 3.23 GA ✔ 2013 MySQL 5.6 GA ✔ 2004 MySQL 4.1 GA ✔ ??? MySQL 5.7 ✔ 2005 Oracle avec InnoDB ✔ 2005 MySQL 5.0 GA nAcademy – 17 Avril 2013
  • 8. Que trouve-t-on dans MySQL 5.6 ? ✔ Optimisation ✔ Sous requêtes (Subquery) ✔ Exécution requêtes ✔ In-to-exists ✔ Plus disponibilité ✔ Semi-join ✔ Performance schéma ✔ Materialization Amélioration Amélioration ✔ ✔ ✔ Lecture de lignes avec intervalle ✔ Mode séquentielle au lieu aléatoire ✔ PERFORMANCE_SCHEMA ✔ Index Condition Pushdown (ICP) ✔ Amélioration des petites LIMIT ✔ Information_schema ✔ Fonctionnalité ✔ Scalability ✔ MemcacheD API innodb ✔ Support des Logs ✔ SHA 256 authentification ✔ Microsecond Time précision ✔ Data dictionary cache ✔ Interface NoSQL ✔ Group commit nAcademy – 17 Avril 2013
  • 9. nAcademy – 17 Avril 2013
  • 10. Drizzle les points forts ✔ Mi 2008 début ✔ Version redessinée de MySQL 6.0 ✔ Mars 2011 1ère version GA ✔ Basé sur Micro-kernel + simple & + léger ✔ En ligne de commande ✔ BDD du coté serveur ✔ GPL v2 nAcademy – 17 Avril 2013
  • 11. nAcademy – 17 Avril 2013
  • 12. Les étapes Percona Server ✔ Dec 2008 : 1ère released ✔ XtraDB au lieu de InnoDB ✔ 2010 Percona 5.5 ✔ Plus d'instrumentation ✔ Juin 2013 Percona 5.6 ✔ Nombreux outils ✔ Amélioration Restart ✔ Performance ✔ Statistiques nAcademy – 17 Avril 2013
  • 13. nAcademy – 17 Avril 2013
  • 14. MariaDB : Un jeune projet... MATURE ✔ Communauté d'amis ✔ Dec 2008 Création de Monty Program ✔ 100 % Open source et compatible MySQL → Monty Widenius ✔ Plateforme d'innovation ✔ MariaDB 5.1 (Fev 2010) ✔ Des commiteurs ✔ MariaDB 5.2 (Nov 2010) ✔ MariaDB 5.3 (Avril 2012) ✔ MariaDB 5.5 (Avril 2012) ✔ MariaDB 10.0a (Nov Compression Multimaster Replication 2012) 1er semestre 2013 ✔ 2013 Fondation Galera people nAcademy – 17 Avril 2013
  • 15. Repère des versions ✔ MariaDB 5.1 → MySQL 5.1 ✔ MariaDB 5.2 → MariaDB 5.1 ✔ MariaDB 5.3 → MariaDB 5.2 ✔ MariaDB 5.5 → MariaDB 5.3 + MySQL 5.5 ✔ MariaDB 10.0 → MariaDB 5.5 + MySQL 5.6 ✔ MariaDB 5.6 → MariaDB 5.5 + MySQL 5.6 Fin 2013 ✔ MariaDB 10.0.1 → MariaDB 5.6 + MariaDB 10.0 nAcademy – 17 Avril 2013
  • 16. nAcademy – 17 Avril 2013
  • 17. Comparaison 1/3 nAcademy – 17 Avril 2013 © Monty Widenius
  • 18. Comparaison 2/3 nAcademy – 17 Avril 2013 © Monty Widenius
  • 19. Comparaison 3/3 nAcademy – 17 Avril 2013 © Monty Widenius
  • 20. En un mot... MariaDB vs MySQL ✔ Plus de storages ✔ Vitesse ✔ Innodb, replication, stockage... ✔ Nombreuses extensions et fonctionnalités ✔ Colonnes virtuelles, colonne dynamique, multi... ✔ Plus de tests ✔ Tests correctifs, réactivités... ✔ Code source ouvert ✔ Développé par la communauté nAcademy – 17 Avril 2013
  • 21. Mode avancé nAcademy – 17 Avril 2013
  • 22. Connecteurs ✔ PHP (driver natif) → BSD licence ✔ Python ✔ Ruby ✔ .NET avec MyODBC ✔ JDBC (basé sur drizzle driver) ✔ C ✔ Oracle connector (licence GPL) Tous sont LGPL → Aucune licence commerciale nAcademy – 17 Avril 2013
  • 23. Storages engines 1/4 ✔ A partir de MariaDB 5.3 Cassandra SE ✔ NoSQL / NewSQL ✔ Données non structurées ✔ Réplication rapide ✔ Assurer l'intégration des données SQL / NoSQL ✔ Mapping possible nAcademy – 17 Avril 2013
  • 24. Storages engines 2/4 ➢ Cassandra ✔ (R)Tokutek & MariaDB ➢ TokuDB ✔ Natif MariaDB 5.5 & 10.0 Tech : Utilise l'arbre fractal ✔ ✔ Amélioration indexation ✔ Amélioration des requêtes ✔ Schéma de vitesse ✔ Compression ✔ Réplication ✔ Souple nAcademy – 17 Avril 2013
  • 25. Storages engines 3/4 ➢ Cassandra ✔ MariaDB 10.0 ➢ TokuDB ✔ Lecture / Ecriture / MAJ ➢ Connect TXT ✔ ✔ DBF ✔ .INI ✔ .XML ✔ ODBC ✔ Locale ou distant ✔ Possible de faire le sien nAcademy – 17 Avril 2013
  • 26. Storages engines 4/4 ➢ Cassandra ➢ TokuDB ✔ PBXT (Désactiver 5.5) ✔ XtraDB (old innoDB) ➢ Connect ✔ FederatedX A partir de 5.1 ✔ Aria (old MyISAM) nAcademy – 17 Avril 2013
  • 27. Storages engines 4/4 ➢ Cassandra ➢ TokuDB ✔ OQGraph (moteur info) ✔ SphinxSE (=search) ➢ Connect A partir de 5.1 A partir de 5.2 nAcademy – 17 Avril 2013
  • 28. Colonnes dynamiques ✔ Pont entre les BDD relationnelles et non relationnelles ✔ Toutes les colonnes stockées dans un « blob » ✔ Possibilité de le manipuler ✔ Possibilité de créer des index Virtuels nAcademy – 17 Avril 2013
  • 29. Création d'une colonne dynamique CREATE TABLE t1 ( COLUMN_CREATE( ID int column_nr, auto_increment value [as type], primary key, [ Type_id int, column_nr, Prix decimal(7,2), value [as type] extra 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; ID / Type_id / Prix Coloris / Taille / Matériel / Vide / hard / option nAcademy – 17 Avril 2013
  • 30. Exemple plus réaliste nAcademy – 17 Avril 2013
  • 31. Subquery... MariaDB 5.3+ / MySQL 5.6 SELECT ... FROM table1 WHERE table1_col IN ( SELECT table2_col FROM table2 WHERE table2_subq) AND table1_where; Optimizer_switch='semijoin=on' Optimizer_switch='semijoin=on' Materialization=on / /off Materialization=on off in_to_exists = on/off in_to_exists = on/off tmp_table_size tmp_table_size max_heap_table_size max_heap_table_size nAcademy – 17 Avril 2013
  • 32. MariaDB 10.0 ✔ Moteur de table (storages engines) natif ✔ Réplication multisource ✔ NOW() à la place de DATETIME ✔ Amélioration des informations erreurs ✔ Amélioration schéma de performance ✔ InnoDB ✔ Replication ✔ Statistics & Monitoring ✔ Optimizer ✔ Performance nAcademy – 17 Avril 2013
  • 33. Performance nAcademy – 17 Avril 2013 http://blog.mariadb.org/mariadb-5-3-optimizer-benchmark/
  • 34. En pratique nAcademy – 17 Avril 2013
  • 35. Environnement embarqué ✔ EasyPHP ✔ Xampp ✔ WampServer ✔ PHPserver ✔ WampMSS nAcademy – 17 Avril 2013
  • 36. Exemple 1 : Wampserver ✔ DL MariaDB (http://mariadb.org) ✔ Installer dans 1 dossier MySQL ✔ Déplacer les BDD sauvegardées data ✔ Lancer Wampserver nAcademy – 17 Avril 2013
  • 37. Exemple 2 : PHPServer ✔ DL PHPServer http://www.treshaut.net/viewtopic.php?t=28&p=71 ✔ Installation nAcademy – 17 Avril 2013
  • 38. Exemple 2 : PHPServer avec phpMyAdmin nAcademy – 17 Avril 2013
  • 39. Exemple 3 : Linux ✔ sudo apt-get install mariadb-server mariadb-client ✔ Vous retrouvez : ✔ /etc/mysql/my.cnf ✔ > mysql ✔ Au final nAcademy – 17 Avril 2013
  • 40. Outils Backup Pour vos requêtes ✔ MySQLdump ✔ MySQL Workbench ✔ XtraBackup ✔ SkySQL visual Editor (SQLYog) ✔ mysqlhotcopy (MyISAM) ✔ HeidiSQL ✔ XtraBackup manager (PHP) ✔ PhpMyAdmin ✔ ... ✔ Toad For MySQL ✔ ... nAcademy – 17 Avril 2013
  • 41. GO MariaDB nAcademy – 17 Avril 2013
  • 42. Apprentissage nAcademy – 17 Avril 2013
  • 43. Ceux qui ont sauté... ✔ Distributions ✔ Dec 2012 Wikipedia ✔ OpenSUSE 12.3 ✔ 2013 ✔ Gentoo ✔ Blog de Mozilla ✔ FreeBSD ✔ Google Developer ✔ Homebrew ✔ Slackware ✔ ArchLinux ✔ Fédora 7.0 ✔ ... nAcademy – 17 Avril 2013
  • 44. Questions ? nAcademy – 17 Avril 2013