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

L Importance des forks de MySQL

  • 1.
    L'importance des Forksde 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 – 17Avril 2013
  • 7.
    Les grandes datesde 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 dansMySQL 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 – 17Avril 2013
  • 10.
    Drizzle les pointsforts ✔ 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 – 17Avril 2013
  • 12.
    Les étapes PerconaServer ✔ 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 – 17Avril 2013
  • 14.
    MariaDB : Un jeuneprojet... 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 – 17Avril 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 colonnedynamique 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 : PHPServeravec 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 ontsauté... ✔ 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