Your SlideShare is downloading. ×
0
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
L Importance des forks de MySQL
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

L Importance des forks de MySQL

1,573

Published on

Présentation à la nAcademy (Avril 2013) : L'importance des forks de MySQL par Christophe Villeneuve

Présentation à la nAcademy (Avril 2013) : L'importance des forks de MySQL par Christophe Villeneuve

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,573
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
15
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Limportance 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 Lorigine 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 dinstrumentation ✔ 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é damis ✔ Dec 2008 Création de Monty Program ✔ 100 % Open source et compatible MySQL → Monty Widenius ✔ Plateforme dinnovation ✔ 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 FondationGalera 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 linté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 larbre 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 dune colonne dynamiqueCREATE 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 MariaDBnAcademy – 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

×