39
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Tuesday, October 20, 2015 Oracle Confidential Restricted MySQL 5.7 InnoDB Update Mario Beck MySQL EMEA Presales Manager 1

MySQL 5.7: Focus on InnoDB

Embed Size (px)

Citation preview

Page 1: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Tuesday, October 20, 2015 Oracle Confidential – Restricted

MySQL 5.7 InnoDB Update

Mario Beck MySQL EMEA Presales Manager

1

Page 2: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Safe Harbor Statement

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Tuesday, October 20, 2015 Oracle Confidential – Restricted 2

Page 3: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Intro Key parameters InnoDB 5.6 vs. 5.7 InnoDB ‘Always online’ GIS MySQL Enterprise Backup News From The Lab!

1

Tuesday, October 20, 2015 Oracle Confidential – Restricted

2

3

4

5

6

7

Page 4: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Intro 1

Tuesday, October 20, 2015 Oracle Confidential – Restricted

Page 5: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL within Oracle More Investment, More Innovation

Dez 2009 May 2015

5

... 20 Years MySQL … 10 Years InnoDB of Oracle Stewardship … 5 Years MySQL within Oracle

2x Engineering Staff 3x QA Staff 2x Support Staff

Page 6: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL within Oracle More Investment, More Innovation

Dez 2009 May 2015

6

... 20 Years MySQL … 10 Years InnoDB of Oracle Stewardship … 5 Years MySQL within Oracle

2x Engineering Staff 3x QA Staff 2x Support Staff

Page 7: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

InnoDB

• Default Storage Engine since MySQL 5.5 (previous as ‘Oracle’) • ACID-compliant transactions, MVCC • Row-level locking • Two phase commit • Efficient indexing • Fast DDL operations • Table compression • Automatic crash recovery • Referential integrity • Online backup

7

Page 8: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Key parameters 2

Tuesday, October 20, 2015 Oracle Confidential – Restricted

Page 9: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

innodb_file_per_table

• .ibd files

• MySQL 5.5:Off, MySQL 5.6:On, MySQL 5.7:On

• Easier to reclaim space

• TRUNCATE for a table is faster

• Can monitor table size on the file system

• Can store specific tables on different storage devices

• (5.6) Transportable tablespaces

• What are you using when you’ve updated from older version?

9

Page 10: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

innodb_flush_log_at_trx_commit

• Performance vs. Durability

• Redo logs :

– innodb_flush_log_at_trx_commit = 1 // best durability (ACID Compliant), default

– innodb_flush_log_at_trx_commit = 2 // better performance (not ACID Compliant)

– innodb_flush_log_at_trx_commit = 0 // best performance (not ACID Compliant)

• Linux only :

– innodb_flush_method = O_DIRECT // skips the FS cache

10

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html

Page 11: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

innoDB buffer pool

• Global

• Caches data and indexes

• innodb_buffer_pool_size

– 60 – 80% of the total RAM

– Not too large: OS should never swap !

– Active data <= innodb_buffer_pool_size <= 0.8 * RAM

• Use read only transactions

11

Page 12: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

innodb_log_file_size

• Size of file on disk

• Larger the file, the less checkpoint activity

• Size for each log file

• Max combined log file size

– MySQL 5.5 <4G

– MySQL 5.6 & MySQL 5.7 = 512G (!!!)

– innodb_log_file_size = 256M / 512M / 1G (‘often’ 32M default)

• Larger the log file ➯ longer recovery time

12

Page 13: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Tip!

• Especially for HDD, read and write, use dedicated partitions

• Separate :

– datadir

– innodb_data_file_path

– innodb_undo_directory

– innodb_log_group_home_dir

– log-bin

– tmpdir

– backups

Random, SSD

Sequential, spinning

Random, SSD, tmpfs

(NFS, ButterFS, ZFS …)

Page 14: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

InnoDB 5.6 vs. 5.7 3

Tuesday, October 20, 2015 Oracle Confidential – Restricted

Page 15: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Scaling with InnoDB, 5.6 (up to 48 CPUs*) vs. 5.7 (beyond 72 CPUs*) * CPU Cores-HT

0

100.000

200.000

300.000

400.000

500.000

600.000

700.000

18 36 72

Qu

eri

es

pe

r Se

con

d

CPU Cores – HT

MySQL 5.7: Sysbench – OLTP Read Write

MySQL 5.7

MySQL 5.6

MySQL 5.5

Intel(R) Xeon(R) CPU E7-8890 v3 4 sockets x 18 cores-HT (144 CPU threads) 2.5 Ghz, 512GB RAM Linux kernel 3.16

MySQL 5.7 Sysbench Benchmark

Page 16: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Key-value access to InnoDB

- Bypasses SQL Parsing

SQL for rich queries, JOINs, FKs, etc.

Implemented via:

- Memcached plug-in to mysqld

- Memcached mapped to native InnoDB API

- Use existing Memcached clients

- Shared process for ultra-low latency

MySQL 5.6 – InnoDB, NoSQL With Memcached More Flexibility - Memcached API

Page 17: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Improved: MySQL 5.7: InnoDB, NoSQL With Memcached

MySQL 5.7 is 6x faster than MySQL 5.6

0

200.000

400.000

600.000

800.000

1.000.000

1.200.000

8 16 32 64 128 256 512 1.024

Qu

eri

es

pe

r Se

con

d

Connections

MySQL 5.7 vs 5.6 - InnoDB & Memcached

MySQL 5.7

MySQL 5.6

1 Million QPS

18

Intel(R) Xeon(R) CPU E7-4860 x86_64 4 sockets x 10 cores-HT (80 CPU threads) 2.3 GHz, 512 GB RAM Oracle Linux 6.5

Page 18: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

InnoDB Full-Text Index support

• MySQL 5.6

– InnoDB Full-Text Index support • Fully ACID compliant, MVCC search

• With performance improvements over MyISAM

• Easily customizable stop-word lists

• MySQL 5.7

– (Significant) better Performance

– Pluggable Full-Text Parser support

– CJK Support • N-gram parser for Chinese, Japanese, and Korean

• MeCab parser for Japanese

19

Page 19: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

What is it?

• Search entire documents

– Character based fields • VARCHAR, TEXT, BLOB

• For a search string

– Combinations of words

– Phrases: “specific string to match”

– Wildcards: *

– Requirements: +, -, ~

– Expressions: (…)

– Relevancy weight characters: <, >

20

Page 20: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Example

21

Page 21: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

InnoDB ‘Always online’ 4

Tuesday, October 20, 2015 Oracle Confidential – Restricted

Page 22: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL 5.7: InnoDB – Always Online

• Resize the InnoDB Buffer Pool online

– Allows DBAs to tune the buffer size without any downtime

– Adapt in real-time to changes in database usage patterns

• Separate UNDO tablespace – With automatic online truncation

• Additional Online ALTER TABLE support

– Enlarge / instant change VARCHAR, Rename / instant Index

• Dynamic configuration

– Making existing settings dynamically configurable

– As a design principle for new features & settings

23

Page 23: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL 5.7: InnoDB – Example

• Resize the InnoDB Buffer Pool online

– Allows DBAs to tune the buffer size without any downtime

– Increase or decrease online, Operation is performed in chunks (default 128MB)

– Assign memory to MySQL/Apps during runtime

24

Page 24: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

• Native Partitioning

– Eliminates previous limitations

– Eliminates resource usage problems

– Transportable tablespace support

• Native Spatial Indexes

• Transparent page compression

• Support for 32K and 64K pages

– Use with transparent page compression for very high compression ratios

• General TABLESPACE support

– Store multiple tables in user defined shared tablespaces

• Improved support for cache preloading

– Load your hottest data loaded at startup

• Configurable fill-factor

– Allows for improvements in storage footprint

• Improved bulk-data load performance

MySQL 5.7: InnoDB Improvements

25

Page 25: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL 5.7: InnoDB Improvements

• Enhanced FusionIO integration

– Doublewrite buffer disabled when NVMFS/DirectFS detected

• Parallel “dirty page” flushing

– Higher throughput, performance, and scalability

• Partitions support for Transportable Tablespaces (TTS) – TTS support for individual partitions

• Improved crash recovery to ensure data safety

26

Page 26: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL 5.7: InnoDB Compression • Transparent Page Level Compression

– Happens transparently in background threads

– Managed entirely within the IO layer

– Uses sparse file and "hole punching" support in OS kernels and File Systems

• Reduces IO

– Improves MySQL performance

– Improves storage efficiency

– Reduces write cycles, thus increasing SSD lifespan

• Applies to all InnoDB data, including the system tablespace and UNDO logs

28

Page 27: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL 5.7: InnoDB Temp Tables

• New separate tablespace for temporary tables

– Improved CREATE/DROP performance

– DDL changes are transient, which eliminates some disk IO

• Optimize DML operations – No REDO logging, no change buffering, less locking

• New intrinsic temporary tables

– Specialized temporary tables with tailored ACID/MVCC semantics

– Light weight and ultra-fast, great for intermediate query execution operations

• InnoDB as additional storage engine for temp tables – Switch optimizer from MyISAM to InnoDB (faster) for internal temp tables

29

Page 28: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

GIS 5

Tuesday, October 20, 2015 Oracle Confidential – Restricted

Page 29: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL 5.7 : GIS Reborn

• Dev scrapped much of the old algorithms and related code …

– Replacing it with the FOSS Boost.Geometry library (1.58)

• …and rounded out our OGC spatial function support

– Standardized the namespace

• Added native GEOMETRY data type support to InnoDB – We then added SPATIAL INDEX support to InnoDB (using R-tree)

• Added Geohash and GeoJSON support

• Added helper functions: ST_Distance_Sphere(), ST_MakeEnvelope(), ST_IsValid(), ST_Validate(), ST_Simplify, …

31

Page 30: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Spatial Indexes for InnoDB

• R-tree based

– Full transactional support

– Predicate locking to prevent phantoms

– Records contain minimum bounding box • Small and compact

– Currently only supports 2D data • We would like to add 3D support in the future

– Supports historical spatial index DDL syntax

32

Page 31: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

• Replaced custom code

– For spatial calculations

– For spatial analysis

• Provides OGC compliance – With improved performance

• Boost.Geometry contains

– Field and domain experts

– Bustling and robust communit

MySQL 5.7: GIS - Integrating Boost.Geometry

34

Page 32: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL Enterprise Backup 6

Tuesday, October 20, 2015 Oracle Confidential – Restricted

MySQL Enterprise Backup now writes tape information

Page 33: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL Enterprise Backup 4.0

• Online, non-locking backup and recovery – Complete MySQL instance backup (data and config)

– Partial backup and restore

• Direct Cloud storage backups via Swift API

• Incremental backups & Point-in-time recovery

• Advanced compressed and encryption

• InnoDB tables with page sizes of 32 and 64K can be backed up and restored.

• Optimistic backups

• Support for MySQL 5.7

– General Tablespaces

New & Improved

37

Page 34: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

News From The Lab! 7

Tuesday, October 20, 2015 Oracle Confidential – Restricted

Page 35: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication Plugin

Tuesday, October 20, 2015

M M M M M

Replication Group

• Multi-master update everywhere

• Automatic group membership management and failure detection.

• No need for server fail-over.

• Automatic reconfiguration.

• No single point of failure.

• Shared-nothing state machine replication.

• InnoDB compliant. Off-the-shelf hardware friendly.

Oracle Confidential – Restricted 40

Page 36: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

MySQL Group Replication Plugin

• Great technology for deployments where elasticity is a requirement, such as cloud based infrastructures.

– Integrated with the server core through a well defined API.

– It is integrated with GTIDs, row based replication.

– It is integrated with performance schema tables.

– It is elastic and self-healing: adding or removing servers does not need human intervention.

Tuesday, October 20, 2015 Oracle Confidential – Restricted 41

Page 37: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

• Strong development cycles and continuous community engagement through regular and frequent releases on labs.mysql.com.

MySQL Group Replication

Tuesday, October 20, 2015 Oracle Confidential – Restricted 42

2014-Sep-29 Labs release: 0.2.0

2015-Apr-06 Labs release: 0.3.0

2014-Aug-06 Labs release: 0.4.0

2015-Sep-14 Labs release: 0.5.0

Introduces standalone plugin, with its own release cycle!

Page 38: MySQL 5.7: Focus on InnoDB

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Dependable and Scalable MySQL

Tuesday, October 20, 2015 Oracle Confidential – Restricted 43

Global Data Shard 1 Shard 2

MySQL Fabric Controller

SQL Queries

Server/Shard State & Mapping

Global Group HA Group

Coordination and Control

HA Group

Group Replication cluster

Group Replication cluster

Group Replication cluster

MySQL Router

Page 39: MySQL 5.7: Focus on InnoDB