www.fromdual.com           MySQL       New Features 5.6DOAG Konferenz 2012, Nürnberg          Oli Sennhauser   Senior MySQ...
Über FromDual GmbH                            www.fromdual.com●   FromDual bietet neutral und unabhängig:    ●   Beratung ...
Inhalt                            www.fromdual.com   MySQL 5.6 New Features   ●       InnoDB   ●       Replikation   ●    ...
NF 5.6 / InnoDB (1)                                                                              www.fromdual.com●   Fullt...
NF 5.6 / InnoDB (2)                             www.fromdual.com●   Exportieren von Tablespaces:    mysql> ALTER TABLE tes...
NF 5.6 / InnoDB (3)                                                                   www.fromdual.com●   InnoDB INFORMATI...
NF 5.6 / InnoDB Performance                               www.fromdual.com●   Page Cleaner Thread (vorher im Master Thread...
NF 5.6 / InnoDB                                                                     www.fromdual.com●   InnoDB und Optimiz...
NF 5.6 / Replikation (1)                          www.fromdual.com●   Globally Unique Server ID        cat $datadir/auto.c...
NF 5.6 / Replikation (2)                            www.fromdual.com●   Crash safe Binary Logs    ●   Vollständige Events/...
NF 5.6 / Replikation (3)                        www.fromdual.com●   Row Image Control    ●   RBR    ●   Verringert: Platte...
NF 5.6 / Replikation (4)                                  www.fromdual.com●   Parallele Event Ausführung (multi-Threaded  ...
NF 5.6 / Replikation (5)                    www.fromdual.com●   Remote Binary Log Shipping:      mysqlbinlog ­­read­from­r...
NF 5.6 / Partitionen                           www.fromdual.com●   Explizite Wahl der Partition:     SELECT *       FROM s...
NF 5.6 / Optimizer                                                www.fromdual.com●   Query Execution Plan (QEP) für DML S...
NF 5.6 / Performance Schema                              www.fromdual.com●   MySQL hat mit 5.5 das P_S eingeführt    ●   D...
www.fromdual.com+------+------------------+-----------------+------------+-------------------+| user | event_name       | ...
NF 5.6 / Verschiedenes                         www.fromdual.com●   Bruchteile von Sekunden    ●     Bis Mikrosekunden (0.0...
NF 5.6 / Zusammenfassung                       www.fromdual.com●   +400 Bugs gefixed!●   Code wurde aufgeräumt●   Und viel...
Q&A                                                    www.fromdual.com                               Fragen ?            ...
Upcoming SlideShare
Loading in...5
×

MySQL - New Features 5.6

489

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
489
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MySQL - New Features 5.6

  1. 1. www.fromdual.com MySQL New Features 5.6DOAG Konferenz 2012, Nürnberg Oli Sennhauser Senior MySQL Consultant, FromDual GmbH oli.sennhauser@fromdual.com 1 / 20
  2. 2. Über FromDual GmbH www.fromdual.com● FromDual bietet neutral und unabhängig: ● Beratung für MySQL und Galera ● Support für MySQL und Galera ● Remote-DBA Dienstleistungen ● MySQL Schulungen● Partner der Open Database Alliance (ODBA.org)● Oracle Silver Partner (OPN) www.fromdual.com 2 / 20
  3. 3. Inhalt www.fromdual.com MySQL 5.6 New Features ● InnoDB ● Replikation ● Partitionen ● Optimizer ● Performance Schema (P_S) ● Verschiedenes... 3 / 20
  4. 4. NF 5.6 / InnoDB (1) www.fromdual.com● Fulltext Indices auf InnoDB Tabellen: CREATE TABLE `test` (   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,   `data` varchar(64) DEFAULT NULL,   PRIMARY KEY (`id`),   FULLTEXT KEY `data` (`data`) ) ENGINE=InnoDB; EXPLAIN SELECT * FROM test WHERE MATCH (data) AGAINST (updated); +­­­­+­­­­­­­­­­­­­+­­­­­­­+­­­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­+­­­­­­­­­+­­­­­­+­­­­­­+­­­­­­­­­­­­­+ | id | select_type | table | type     | possible_keys | key  | key_len | ref  | rows | Extra       | +­­­­+­­­­­­­­­­­­­+­­­­­­­+­­­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­+­­­­­­­­­+­­­­­­+­­­­­­+­­­­­­­­­­­­­+ |  1 | SIMPLE      | test  | fulltext | data          | data | 0       | NULL |    1 | Using where | +­­­­+­­­­­­­­­­­­­+­­­­­­­+­­­­­­­­­­+­­­­­­­­­­­­­­­+­­­­­­+­­­­­­­­­+­­­­­­+­­­­­­+­­­­­­­­­­­­­+● Sphinx und Solr/Lucene obsolet?● MyISAM obsolet! 4 / 20
  5. 5. NF 5.6 / InnoDB (2) www.fromdual.com● Exportieren von Tablespaces: mysql> ALTER TABLE test DISCARD TABLESPACE; shell> scp test.ibd root@remote:/var/lib/mysql/test mysql> ALTER TABLE test IMPORT TABLESPACE;● MyISAM definitiv obsolete! (Wer braucht GIS Indexes?)● Neuer Default: innodb_file_per_table = on 5 / 20
  6. 6. NF 5.6 / InnoDB (3) www.fromdual.com● InnoDB INFORMATION_SCHEMA Tabellen ● INNODB_BUFFER_* ● INNODB_FT_* ● INNODB_METRICS ● INNODB_SYS_* SELECT name, subsystem, count, comment   FROM INFORMATION_SCHEMA.innodb_metrics WHERE name LIKE %rseg%; +­­­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­+­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+ | name                  | subsystem   | count | comment                                | +­­­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­+­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+ | trx_rseg_history_len  | transaction |   654 | Length of the TRX_RSEG_HISTORY list    | | trx_rseg_current_size | transaction |     0 | Current rollback segment size in pages | +­­­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­+­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­+● InnoDB Monitor ist jetzt überflüssig! 6 / 20
  7. 7. NF 5.6 / InnoDB Performance www.fromdual.com● Page Cleaner Thread (vorher im Master Thread)● innodb_purge_threads kann jetzt > 1 sein● Kernel Mutex aufgeteilt → verbesserte Concurrency● Konkurrenzierendes Lesen währen Sekundäre Indexes gebaut werden● Schnellere warm-up Phase: ● innodb_buffer_pool_dump_at_shutdown● InnoDB REDO Log Grösse bis 512 Gbyte● InnoDB Thread Scheduling besser bei > 16 Threads● UNDO Log → Separater TS (random I/O → SSD!)● Verbesserte Concurrency beim Erweitern von TS Files (innodb_file_per_table) 7 / 20
  8. 8. NF 5.6 / InnoDB www.fromdual.com● InnoDB und Optimizer: ● Persistente Optimizer Statistiken ● Steuerung des Statistik Sammelns (ex. Random Dives)SET GLOBAL innodb_analyze_is_persistent = 1;ANALYZE TABLE valuemaps;SELECT * FROM mysql.innodb_table_stats;+­­­­­­­­­­­­­­­+­­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­+| database_name | table_name | n_rows | clustered_index_size | sum_of_other_index_sizes |+­­­­­­­­­­­­­­­+­­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­+| zabbix        | valuemaps  |      7 |                    1 |                        1 |+­­­­­­­­­­­­­­­+­­­­­­­­­­­­+­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­+­­­­­­­­­­­­­­­­­­­­­­­­­­+● Deadlocks gehen jetzt ins Error Log ● innodb_print_all_deadlocks● InnoDB Page Size kann jetzt sein: 16k, 8k, 4k (OLTP) ● innodb_page_size 8 / 20
  9. 9. NF 5.6 / Replikation (1) www.fromdual.com● Globally Unique Server ID cat $datadir/auto.cnf [auto] server-uuid=db731167-2b4c-11e1-928c-bcaec586ca65● Transaktions Basierte Replikation (TBR?) ● Global Transaction Identifiers (GTID) ● Keine M/S Inkonsistenzen mehr möglich (RBR)!?! ● Noch etwas wenig geschmeidig / komplizierter :-( 9 / 20
  10. 10. NF 5.6 / Replikation (2) www.fromdual.com● Crash safe Binary Logs ● Vollständige Events/Trx werden geloggt (Master und Slave) ● Event-Länge + CRC32 Checksumme● Slave Log Tabellen: master.info und relay­ log.info zusätzlich in (MyISAM :-( ) Tabellen ● slave_master_info + slave_relay_log_info ● → Umwandeln in InnoDB! master­info­repository        = TABLE relay­log­info­repository     = TABLE 10 / 20
  11. 11. NF 5.6 / Replikation (3) www.fromdual.com● Row Image Control ● RBR ● Verringert: Plattenplatz, Netzwerk Ressourcen, Speicher binlog_row_image = {full | minimal | noblob}● Delayed Replikation ● Früher mk­slave­delay (Maatkit) CHANGE MASTER TO MASTER_DELAY = n; 11 / 20
  12. 12. NF 5.6 / Replikation (4) www.fromdual.com● Parallele Event Ausführung (multi-Threaded Slave) ● slave_parallel_workers = <n> ● Parallelisieren pro Schema ● Gut für Hoster mit Traffic auf vielen Schemata! slave_parallel_workers = <n>● Slave kann auf ein Netzwerk Interface gebunden werden: MASTER_BIND=eth1 12 / 20
  13. 13. NF 5.6 / Replikation (5) www.fromdual.com● Remote Binary Log Shipping: mysqlbinlog ­­read­from­remote­server  ­­raw bin­log.000001 > bin­ log.000001.dup● Timestamp in SHOW SLAVE STATUS: SHOW SLAVE STATUSG ... Last_IO_Error_Timestamp: 120130 16:59:12 Last_SQL_Error_Timestamp: 13 / 20
  14. 14. NF 5.6 / Partitionen www.fromdual.com● Explizite Wahl der Partition: SELECT *   FROM sales PARTITION (p2010, p2011)  WHERE sum < 100; → Achtung: Implizite WHERE Klausel!● Austauschen von Partitionen mit Tabelle: ALTER TABLE sales_hist EXCHANGE PARTITION p2011 WITH TABLE sales; ● ETL, DWH 14 / 20
  15. 15. NF 5.6 / Optimizer www.fromdual.com● Query Execution Plan (QEP) für DML Statements!● Optimizer Trace!● Batched Key Access (BKA) → verbesserte JOIN Performance● Multi-Range Read (MRR) → Optimierter Range Scan auf sekundären Indices● Index Condition Pushdown (ICP) → WHERE wird in der Storage Engine ausgewertet● Optimierung von Derived Tables (in FROM Klausel) → Materialsierung wird später ausgeführt und Index auf Derived Table erstellt● ORDER BY auf nicht indexierte Spalten → sort_buffer Sort Merge Passes werden vermieden 15 / 20
  16. 16. NF 5.6 / Performance Schema www.fromdual.com● MySQL hat mit 5.5 das P_S eingeführt ● Die Idee dahinter: Miss alles! ● Hat Einfluss auf Gesamtperformance (5 – 10 %)!● Neue Messpunkte in 5.6 für: ● Table read und write (row-level accesses) ● Stages und Statements (stage = State) ● Connections, Sockets ● Table Lock Wait Events ● Table und Index I/O Wait Events● Filter nach ● Thread ● Objekt 16 / 20
  17. 17. www.fromdual.com+------+------------------+-----------------+------------+-------------------+| user | event_name | tmp_disk_tables | tmp_tables | sort_merge_passes |+------+------------------+-----------------+------------+-------------------+| root | select | 0 | 1 | 0 || root | show_databases | 0 | 4 | 0 || root | show_tables | 0 | 20 | 0 || root | show_fields | 2 | 2 | 0 || root | show_variables | 0 | 91 | 0 |+------+------------------+-----------------+------------+-------------------++------------+------------+--------------+-------------+--------------+| table_name | timer_read | timer_insert | timer_upate | timer_delete |+------------+------------+--------------+-------------+--------------+| leads | 0.0259 | 0.0000 | 0.0000 | 0.0000 || src | 1.8537 | 0.0000 | 0.0000 | 0.0000 || test | 0.3186 | 2.0249 | 1.3156 | 0.0006 |+------------+------------+--------------+-------------+--------------+ 17 / 20
  18. 18. NF 5.6 / Verschiedenes www.fromdual.com● Bruchteile von Sekunden ● Bis Mikrosekunden (0.000001 s)● GET DIAGNOSTICS ● Für Fehlersuche in Stored Programs● Authentisierung über Plugin (Socket)● Memcached Plug-in● ... 18 / 20
  19. 19. NF 5.6 / Zusammenfassung www.fromdual.com● +400 Bugs gefixed!● Code wurde aufgeräumt● Und viele, viele weitere kleine Neuigkeiten...● Achtung: Auch einige Inkompatibilitäten! → vor Upgrade gut testen! Wir helfen gerne... 19 / 20
  20. 20. Q&A www.fromdual.com Fragen ? Diskussion? Wir haben Zeit für ein persönliches Gespräch...● FromDual bietet neutral und unabhängig: ● MySQL Beratung ● Remote-DBA MySQL ● Support für MySQL und Galera ● MySQL Schulung www.fromdual.com/presentations 20 / 20
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×