+ All Categories
Home > Documents > Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema...

Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema...

Date post: 01-Aug-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
25
Learning MySQL 5.7 Jervin Real July 2017 1 / 25
Transcript
Page 1: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Learning MySQL 5.7

Jervin Real

July 2017

1 / 25

Page 2: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Agenda

1. Background

2. New Features

3. Upgrading to 5.7

2 / 25

Page 3: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Background and Current State

3 / 25

Page 4: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Background and Current State

In Comparison, MySQL 5.7 is:Percona Server 5.7

MariaDB 10.1 (hybrid with 5.6)

DatesFirst GA in October 2015, 5.7.9

Matured enough to adopt, stream of bug fixes

5.5 is now in extended support, 5.6 will be in extended support after Feb

2018

This means likely 8.0 could go GA early 2018

Do not be behind by more than one major version if possible

4 / 25

Page 5: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

5 / 25

Page 6: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

Some of them in <30 minutes ...JSON

GIS

Replication

Parallel Replication

Multi Source Replication

Semisync Improvements

Group Replication

InnoDB Enhancements

Online EXPLAIN

Performance Schema and sys Schema

Complete List of Changes: http://www.thecompletelistoffeatures.com

6 / 25

Page 7: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

JSONNative JSON Data Type

utf8mb4 character set

JSON Comparator

Short-hand JSON_EXTRACT operator

(field->"json_path")

Document validation on INSERT

Indexes via scalar generated columns

Functions to CREATE, SEARCH, MODIFY and return JSON values

CREATE TABLE t1 (jdoc JSON);INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');

SELECT JSON_OBJECT('key1', 1, 'key2', 'abc');+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+| JSON_OBJECT('key1', 1, 'key2', 'abc') |+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+| {"key1": 1, "key2": "abc"}            |+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+

7 / 25

Page 8: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

GISInnoDB supports indexing of spatial datatypes

https://www.percona.com/blog/2016/02/03/new-gis-features-in-mysql-5-7/

Consistent naming scheme for GIS functions

GIS has been refactored internally; now based on Boost::Geometry

Geohash functions

GeoJSON functions

Functions: ST_Distance_Sphere, ST_MakeEnvelope, ST_IsValid, ST_Validate,

ST_Simplify, ST_Buffer and ST_IsSimple

8 / 25

Page 9: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

Replication (1)Online changes to Replication Filters

CHANGE REPLICATION FILTER

REPLICATE_WILD_DO_TABLE = ('db1.old%');

Parallel replication - Group Commit

STOP SLAVE;

SET GLOBAL slave_parallel_workers=32;

SET GLOBAL slave_parallel_type='LOGICAL_CLOCK';

START SLAVE;

Multi-source replication

FOR CHANNEL 'channel'

Replication filters not configurable per channel

Support multi-threaded slave

Monitoring support in Performance_Schema

9 / 25

Page 10: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

Replication (2)Improved Semisync Replication

Semi-sync can now wait for N slaves acknowledgement

rpl_semi_sync_master_wait_for_slave_count = N

Online GTID Deployment (already available on Percona Server 5.6)

Group Replication

10 / 25

Page 11: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

InnoDB (1)Online Buffer Pool Resize

SET GLOBAL innodb_buffer_pool_size=402653184;

SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_resize%';

ALTER TABLE RENAME INDEX; meta-data change

General Tablespace Support

CREATE TABLESPACE test

ADD DATAFILE '/tmp/tmp_general_tablespace.ibd';

ALTER TABLE test.title TABLESPACE=test;

CREATE TABLE test.testtblspc (a int) TABLESPACE=test;

11 / 25

Page 12: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

InnoDB (2)Separate tablespace for temporary tables.

No redo log, special UNDO log for ROLLBACK TO SAVEPOINT.

No fsync()s, reduces IO overhead

Virtual Columns

Metadata only, not stored by default

Can be indexed to support tricky queries

12 / 25

Page 13: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

EXPLAIN for CONNECTIONmysql> show processlist;+‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+| Id | User | Host      | db   | Command | Time | State        | Info              |+‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+| 18 | root | localhost | NULL | Query   |    0 | init         | show processlist  || 19 | root | localhost | test | Query   |    4 | Sending data | select * from bbb |+‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+2 rows in set (0.00 sec)

mysql> explain for connection 19;+‐‐‐‐+‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐+| id | table | type | rows      | Extra |+‐‐‐‐+‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐+|  1 | bbb   | ALL  | 215913534 | NULL  |+‐‐‐‐+‐‐‐‐‐‐‐+‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐+1 row in set (0.00 sec)

13 / 25

Page 14: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

Performance_Schema and sys Schema (1)Overhead has been reduced in client connect/disconnect phases

Memory footprint has been reduced, auto-size/auto-scale - but never

deallocated

Number of new instrumentations added, including watching itself i.e.

memory usage, lost metrics

MDL lock

Memory per user, by event, etc

Estimation for ALTER statement progress

SYS schema is now bundled by default

14 / 25

Page 15: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

MySQL 5.7 New Features

Performance_Schema and sys Schema (2)100 new views, 21 new stored functions and 26 new stored procedures

Table IO statistics are now batched for improved performance

For workloads that are read heavy

Better replication monitoring specially for multi-source and multi-

threaded

15 / 25

Page 16: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Upgrading to 5.7

16 / 25

Page 17: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Upgrading to 5.7

Installationtest database no longer created

Anonymous users no longer created

Random password generated during install

Auto generation of SSL keys (CA, cert, key) by default

17 / 25

Page 18: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Upgrading to 5.7

New Configuration Defaults (Replication)binlog_format=ROW                   # OLD: STATEMENT

binlog_gtid_simple_recovery=1       # OLD: 0

binlog_error_action=ABORT_SERVER    # OLD: IGNORE_ERROR

slave_net_timeout=60                # OLD: 3600

sync_binlog=1                       # OLD: 0

18 / 25

Page 19: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Upgrading to 5.7

New Configuration Defaults (InnoDB)innodb_buffer_pool_dump_at_shutdown=1     # OLD: 0innodb_buffer_pool_load_at_startup=1      # OLD: 0

innodb_file_format=Barracuda              # OLD: Antelopeinnodb_default_row_format=DYNAMIC         # OLD: COMPACT

innodb_page_cleaners=4                    # OLD: 1innodb_purge_threads=4                    # OLD: 1

innodb_strict_mode=1                      # OLD: 0innodb_checksum_algorithm=crc32           # OLD: innodb

19 / 25

Page 20: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Upgrading to 5.7

New Configuration Defaults (Optimizer)internal_tmp_disk_storage_engine=INNODB    # OLD: MyISAM (hardcoded)

eq_range_index_dive_limit=200              # OLD: 10

sql_mode=ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES,   NO_ZERO_IN_DATE, NO_ZERO_DATE,   ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER,  NO_ENGINE_SUBSTITUTION                   # OLD: NO_ENGINE_SUBSTITUTION

20 / 25

Page 21: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Upgrading to 5.7

Deprecations and ImcompatibilitiesOld pre-4.1 password formats and functions has been removed

YEAR(2) to YEAR(4)

INSERT DELAYED is no longer supported

21 / 25

Page 22: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Upgrading to 5.7

Upgrade Procedure (Oracle)5.6 to 5.7 is the only upgrade path officially supported

Backup your data

Read all release notes and assess

In-Place Upgrade:

Clean shutdown (innodb_fast_shutdown=0)

Run mysql_upgrade (beware of Barracuda)

Logical Upgrade:

mysqldump data

Import data again

Run mysql_upgrade to fix mysql schema

22 / 25

Page 23: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Read consistency checks with pt-

table-checksum

Write consistency checks with pt-

upgrade using slow logs

Perform real world workload on

separate environment

Chained replication for rollback

contingency

Test mysql_upgrade too,

parallelization helps!

Upgrading to 5.7

Upgrade Procedure - Tests

23 / 25

Page 24: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Questions!

24 / 25

Page 25: Learning MySQL 5 - Percona – The Database Performance ...MySQL 5.7 New Features Performance_Schema and sys Schema (1) Overhead has been reduced in client connect/disconnect phases

Percona Live Europe Call for Papers is Open!

https://www.percona.com/live/e17/percona-live-call-for-papers

25 / 25


Recommended