Frédéric Descamps
Community Manager
MySQL
October 2020
State of the Dolphin
MySQL 8.0
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purpose 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 up in
making purchasing decisions. The development, release, timing and pricing of any features
or functionality described for Oracle´s product may change and remains at the sole
discretion of Oracle Corporation.
Copyright @ 2020 Oracle and/or its affiliates.2
Who am I ?
about.me/lefred
Copyright @ 2020 Oracle and/or its affiliates.3
Frédéric Descamps
@lefred
MySQL Evangelist
Managing MySQL since 3.20
devops believer
living in Belgium
h ps://lefred.be
Copyright @ 2020 Oracle and/or its affiliates.4
Where are we in 2020 ?
MySQL 8.0.22
Copyright @ 2020 Oracle and/or its affiliates.5
DB-Engines 2020
Database Ranking
Copyright @ 2020 Oracle and/or its affiliates.6
DB-Engines 2020
Database Ranking
MySQL is the most popular Open Source database
Copyright @ 2020 Oracle and/or its affiliates.6
MySQL is the DBMS of the Year 2019 !
Copyright @ 2020 Oracle and/or its affiliates.7
MySQL Developer Popularity
Stack Over ow Developer Survey 2020
Copyright @ 2020 Oracle and/or its affiliates.8
MySQL is the most popular
database with developers
MySQL Developer Popularity
Stack Over ow Developer Survey 2020
Copyright @ 2020 Oracle and/or its affiliates.8
Happy 25th Anniversary MySQL
Copyright @ 2020 Oracle and/or its affiliates.9
One giant leap for SQL
MySQL 8.0
Copyright @ 2020 Oracle and/or its affiliates.10
"This is a landmark release as MySQL
eventually evolved beyond SQL-92 and the
purely relational dogma. Among a few other
standard SQL features, MySQL now supports
window functions (over) and common table
expressions (with). Without a doubt, these are
the two most important post-SQL-92
features.”
MySQL 8.0: one giant leap for SQL
Copyright @ 2020 Oracle and/or its affiliates.11
and still innovating !
Credits: @MarkusWinand - @ModernSQL
Copyright @ 2020 Oracle and/or its affiliates.12
Credits: @MarkusWinand - @ModernSQL
SQL: RECURSION / CTEs
Copyright @ 2020 Oracle and/or its affiliates.13
Credits: @MarkusWinand - @ModernSQL
SQL: LATERAL
Copyright @ 2020 Oracle and/or its affiliates.14
Credits: @MarkusWinand - @ModernSQL
SQL: Analytical / Window Functions
Copyright @ 2020 Oracle and/or its affiliates.15
Credits: @MarkusWinand - @ModernSQL
SQL: Analytical / Window Functions
Copyright @ 2020 Oracle and/or its affiliates.16
Credits: @MarkusWinand - @ModernSQL
SQL: JSON_TABLE
Copyright @ 2020 Oracle and/or its affiliates.17
Credits: @MarkusWinand - @ModernSQL
SQL: JSON_TABLE
Copyright @ 2020 Oracle and/or its affiliates.18
This function is described in SQL 2016,
chapter 6.27 and is also implemented in:
Oracle
SQL Server
DB2
SQL: JSON_VALUE       NEW in 8.0.21
Copyright @ 2020 Oracle and/or its affiliates.19
MySQL Document Store
I ❤JSON & NoSQL
Copyright @ 2020 Oracle and/or its affiliates.20
Copyright @ 2020 Oracle and/or its affiliates.21
* CREATE
* READ
* UPDATE
* DELETE
col->add({title: 'MySQL is Great', author: 'lefred' })
col-> nd()
collection.modify('author = "lefred"').set('author',
'kenny')
col.remove('author = "lefred"')
MySQL supports JSON & CRUD operations
Copyright @ 2020 Oracle and/or its affiliates.22
* CREATE
* READ
* UPDATE
* DELETE
col->add({title: 'MySQL is Great', author: 'lefred' })
col-> nd()
collection.modify('author = "lefred"').set('author',
'kenny')
col.remove('author = "lefred"')
MySQL supports JSON & CRUD operations
It's possible to use MySQL without a single line of SQL !
Copyright @ 2020 Oracle and/or its affiliates.22
MySQL supports JSON & CRUD operations
Copyright @ 2020 Oracle and/or its affiliates.23
NoSQL + SQL =
MySQL
Copyright @ 2020 Oracle and/or its affiliates.24
MySQL 8.0 is also refactoring
New Volcano Iterator
Copyright @ 2020 Oracle and/or its affiliates.25
Modular
Easy to Extend
Each iterator encapsulates one operation
Same interface for all iterators
All operations can be connected
MySQL New Iterator Executor
Copyright @ 2020 Oracle and/or its affiliates.26
Modular
Easy to Extend
Each iterator encapsulates one operation
Same interface for all iterators
All operations can be connected
MySQL New Iterator Executor
Copyright @ 2020 Oracle and/or its affiliates.26
EXPLAIN FORMAT=TREE
Copyright @ 2020 Oracle and/or its affiliates.27
EXPLAIN ANALYZE
Instruments and executes the query
Estimated cost
Actual execution statistics
Time to return rst row
Time to return all rows
Number of rows returned
Number of loops
Uses the new tree output format also available in EXPLAIN
Copyright @ 2020 Oracle and/or its affiliates.28
EXPLAIN ANALYZE
Copyright @ 2020 Oracle and/or its affiliates.29
EXPLAIN ANALYZE
Copyright @ 2020 Oracle and/or its affiliates.30
EXPLAIN ANALYZE
Copyright @ 2020 Oracle and/or its affiliates.31
EXPLAIN ANALYZE
Copyright @ 2020 Oracle and/or its affiliates.32
EXPLAIN ANALYZE
Copyright @ 2020 Oracle and/or its affiliates.33
Hash Join
Typically faster than nested loop for large result sets
In-memory if possible
Spill to disk if necessary
Used in all types of joins (inner, equi, outer, semi, anti)
Replaces BNL in query plans
Copyright @ 2020 Oracle and/or its affiliates.34
Hash Join: performance
Copyright @ 2020 Oracle and/or its affiliates.35
Performance & Scalability
InnoDB & Binary Logs - latest changes
Copyright @ 2020 Oracle and/or its affiliates.36
Redo logging can now be enabled and disable
Very useful during initial data load !
mysql> ALTER INSTANCE DISABLE INNODB REDO_LOG;
Copyright @ 2020 Oracle and/or its affiliates.37
MySQL 8.0: Sysbench IO-bound OLTP_RW, 8
tables, 50M rows each
Redo logging can now be enabled and disable
Very useful during initial data load !
mysql> ALTER INSTANCE DISABLE INNODB REDO_LOG;
New Double Write Bu er     15x Faster !!
Copyright @ 2020 Oracle and/or its affiliates.37
New Binlog Compression !
Credits: @JWKrogh - h ps://mysql.wisborg.dk/2020/05/07/mysql-compressed-binary-logs/
Copyright @ 2020 Oracle and/or its affiliates.38
New Binlog Compression !
Credits: @JWKrogh - h ps://mysql.wisborg.dk/2020/05/07/mysql-compressed-binary-logs/
Copyright @ 2020 Oracle and/or its affiliates.38
and of course MySQL Clone
Copyright @ 2020 Oracle and/or its affiliates.39
Usability
always improving usability !
Copyright @ 2020 Oracle and/or its affiliates.40
Error log available in performance_schema !
Copyright @ 2020 Oracle and/or its affiliates.41
Error log available in performance_schema !
Copyright @ 2020 Oracle and/or its affiliates.41
SOURCE_CONNECTION_AUTO_FAILOVER
With MySQL 8.0.22 there is new asynchronous connection failover mechanism to
automatically establish an asynchronous (source to replica) replication connection to a new
source after the existing connection from a replica to its source fails.
Copyright @ 2020 Oracle and/or its affiliates.42
Solutions Easy to Deploy
Database Architectures
Copyright @ 2020 Oracle and/or its affiliates.43
MySQL InnoDB Cluster
"A single product — MySQL — with high availability and scaling features baked in;
providing an integrated end-to-end solution that is easy to use."
Copyright @ 2020 Oracle and/or its affiliates.44
MySQL InnoDB Cluster
"A single product — MySQL — with high availability and scaling features baked in;
providing an integrated end-to-end solution that is easy to use."
Copyright @ 2020 Oracle and/or its affiliates.44
High Available Distributed MySQL DB
Fault tolerance
Automatic failover
Active/Active update anywhere (limits apply)
Automatic membership management
Adding/removing members
Network partitions, failures
Con ict detection and resolution
Prevents data loss
GPL
MySQL InnoDB Cluster
"A single product — MySQL — with high availability and scaling features baked in;
providing an integrated end-to-end solution that is easy to use."
Copyright @ 2020 Oracle and/or its affiliates.44
Introducing MySQL InnoDB ReplicaSet!
8.0.19 Feature!
Fully integrated MySQL Router
Automatic Routing
Ease of use with MySQL Shell
Con guring, Adding, Removing members
Automatic Member Provisioning (CLONE)
MySQL InnoDB Replicaset
Copyright @ 2020 Oracle and/or its affiliates.45
Replication Architecture:
(manual) Switchover & Failover
(asynchronous) Read Scaleout
'Simple' Replication architecture:
no network/hardware requirements
Providing Availability on PRIMARY when
issues with secondaries or network
MySQL InnoDB Replicaset
Copyright @ 2020 Oracle and/or its affiliates.46
One Product: MySQL
All components developed together
Integration of all components
Full stack testing
MySQL InnoDB Cluster & ReplicaSet - Goals
Copyright @ 2020 Oracle and/or its affiliates.47
One Product: MySQL
All components developed together
Integration of all components
Full stack testing
Easy to Use
One client: MySQL Shell
Integrated orchestration
Homogenous servers
MySQL InnoDB Cluster & ReplicaSet - Goals
Copyright @ 2020 Oracle and/or its affiliates.47
One Product: MySQL
All components developed together
Integration of all components
Full stack testing
Easy to Use
One client: MySQL Shell
Integrated orchestration
Homogenous servers
MySQL InnoDB Cluster & ReplicaSet - Goals
Support DNS-SRV since 8.0.19 with our connectors
Copyright @ 2020 Oracle and/or its affiliates.47
Solutions Easy to Deploy
Copyright @ 2020 Oracle and/or its affiliates.48
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
js> c admin@mysql1
js> cluster = dba.createCluster('cluster')
js> c admin@mysql1
js> rs = dba.createReplicaSet('replicaset')
Solutions Easy to Deploy
Copyright @ 2020 Oracle and/or its affiliates.48
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
js> c admin@mysql1
js> cluster = dba.createCluster('cluster')
js> c admin@mysql1
js> rs = dba.createReplicaSet('replicaset')
Con gure server to add later
js> dba.con gureInstance('admin@mysql2') js> dba.con gureReplicaSetInstance('admin@mysql2')
Solutions Easy to Deploy
Copyright @ 2020 Oracle and/or its affiliates.48
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
js> c admin@mysql1
js> cluster = dba.createCluster('cluster')
js> c admin@mysql1
js> rs = dba.createReplicaSet('replicaset')
Con gure server to add later
js> dba.con gureInstance('admin@mysql2') js> dba.con gureReplicaSetInstance('admin@mysql2')
Add server to the Cluster
js> cluster.addInstance('admin@mysql2') js> rs.addInstance('admin@mysql2')
Solutions Easy to Deploy
Copyright @ 2020 Oracle and/or its affiliates.48
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
js> c admin@mysql1
js> cluster = dba.createCluster('cluster')
js> c admin@mysql1
js> rs = dba.createReplicaSet('replicaset')
Con gure server to add later
js> dba.con gureInstance('admin@mysql2') js> dba.con gureReplicaSetInstance('admin@mysql2')
Add server to the Cluster
js> cluster.addInstance('admin@mysql2') js> rs.addInstance('admin@mysql2')
Bootstrap MySQL Router
$ sudo mysqlrouter --user=mysqlrouter --bootstrap
$ sudo systemctl start mysqlrouter
$ sudo mysqlrouter --user=mysqlrouter --bootstrap
$ sudo systemctl start mysqlrouter
Solutions Easy to Deploy
Copyright @ 2020 Oracle and/or its affiliates.48
MySQL Database Architecture Summary
Single Region
Requirement Solution
RTO = hours,    RPO = minutes MySQL Server w. Backups & Binary Log Sync
RTO = hours,    RPO = less than a second MySQL Server w. Backups & Binary Log Stream
RTO = minutes, RPO = less than a second MySQL InnoDB ReplicaSet
RTO = seconds, RPO = 0 MySQL InnoDB Cluster
Multi Regions
Requirement Solution
RTO = minutes, RPO = seconds MySQL InnoDB Cluster w. asynchronous replica
RTO = seconds
and/or RPO = 0
Multi Region MySQL InnoDB Cluster w:
- 2 regions: consistency level AFTER
- 3 regions deployment
Copyright @ 2020 Oracle and/or its affiliates.49
MySQL Database Architecture Summary (2)
Other Requirements
Requirement Solution
Fully Consistent Reads MySQL InnoDB Cluster w. custom consistency levels
Multi Primary Single Region MySQL InnoDB Cluster
Multi Primary Multi Regions Multi Regions MySQL InnoDB Cluster
Copyright @ 2020 Oracle and/or its affiliates.50
MySQL Shell
the best tool for DBAs
Copyright @ 2020 Oracle and/or its affiliates.51
MySQL Shell - Extensible
Copyright @ 2020 Oracle and/or its affiliates.52
MySQL Shell - Extensible
Copyright @ 2020 Oracle and/or its affiliates.53
https://github.com/lefred/mysqlshell-
plugins
Copyright @ 2020 Oracle and/or its affiliates.54
MySQL Database Service
MDS in OCI
Copyright @ 2020 Oracle and/or its affiliates.55
Various options but many questions
How to get the latest features, security xes?
How to provide security & regulatory compliance?
How to provide compatibility with on-premises?
How to integrate with Oracle technologies?
How to get expert MySQL technical support?
Only Oracle provides a MySQL Database Service
100% developed and managed by the MySQL team
100% built on MySQL Enterprise Edition
100% compatible with on-premises MySQL
100% compatible with Oracle technologies
100% supported by the MySQL Team
MySQL in the Cloud
Copyright @ 2020 Oracle and/or its affiliates.56
MySQL Database Service
100% developed, managed, and supported by the MySQL team
Copyright @ 2020 Oracle and/or its affiliates.57
MySQL Database Service
1 Year TCO
Copyright @ 2020 Oracle and/or its affiliates.58
Cloud Regions
Situation as Oct 1st 2020
Copyright @ 2020 Oracle and/or its affiliates.59
Black Lives Matter
#blacklivesma er
Copyright @ 2020 Oracle and/or its affiliates.60
Terminology Changes
We decided to change terminoly in our products. From commands, output, manuals,
source code and more !
Copyright @ 2020 Oracle and/or its affiliates.61
Terminology Changes
We decided to change terminoly in our products. From commands, output, manuals,
source code and more !
Of course this is a huge amount of work and will be distributed in several releases.
Copyright @ 2020 Oracle and/or its affiliates.61
Please check Kenny's announcement for
more info:
h ps://mysqlhighavailability.com/mysql-
terminology-updates/
Terminology Changes
We decided to change terminoly in our products. From commands, output, manuals,
source code and more !
Of course this is a huge amount of work and will be distributed in several releases.
Copyright @ 2020 Oracle and/or its affiliates.61
Terminology Changes (2)
You can already see some changes in 8.0.22:
mysql> show replica statusG
*************************** 1. row ***************************
Replica_IO_State: Waiting for master to send event
Source_Host: 127.0.0.1
Source_User: rsandbox
Source_Port: 21223
Connect_Retry: 60
Source_Log_File: mysql-bin.000002
Read_Source_Log_Pos: 156
Relay_Log_File: mysql-relay.000006
Relay_Log_Pos: 371
Relay_Source_Log_File: mysql-bin.000002
Replica_IO_Running: Yes
Replica_SQL_Running: Yes
...
Source_SSL_Allowed: No
...
Seconds_Behind_Source: 0
Source_SSL_Verify_Server_Cert: No
Copyright @ 2020 Oracle and/or its affiliates.62
Open Source
MySQL is GPL
Copyright @ 2020 Oracle and/or its affiliates.63
MySQL Server : GPL
MySQL Router : GPL
MySQL Shell : GPL
MySQL Clone : GPL
MySQL Workbench : GPL
Copyright @ 2020 Oracle and/or its affiliates.64
MySQL Server : GPL
MySQL Router : GPL
MySQL Shell : GPL
MySQL Clone : GPL
MySQL Workbench : GPL
And we accept contributions !
Copyright @ 2020 Oracle and/or its affiliates.64
Thank you !- 293 contributions
- 68 contributors (employees not
counted 😉 )
Top 3 contributors:
Facebook: 59
Daniël van Eeden: 41
Laurynas Biveinis: 17
MySQL 8.0 is also
Copyright @ 2020 Oracle and/or its affiliates.65
Copyright @ 2020 Oracle and/or its affiliates.66
Join us on MySQL Comunity Slack
h ps://lefred.be/mysql-community-on-slack
 
Copyright @ 2020 Oracle and/or its affiliates.67
MySQL 8.0 DBA Certi cation now available
Copyright @ 2020 Oracle and/or its affiliates.68
MySQL 8.0 Developer Certi cation now available
Copyright @ 2020 Oracle and/or its affiliates.69
Thank you !
Copyright @ 2020 Oracle and/or its affiliates.70
 
Soon MySQL 5.6 will be EOL !
< than 4 months !
Copyright @ 2020 Oracle and/or its affiliates.71

the State of the Dolphin - October 2020

  • 1.
    Frédéric Descamps Community Manager MySQL October2020 State of the Dolphin MySQL 8.0
  • 2.
    Safe Harbor Statement Thefollowing is intended to outline our general product direction. It is intended for information purpose 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 up in making purchasing decisions. The development, release, timing and pricing of any features or functionality described for Oracle´s product may change and remains at the sole discretion of Oracle Corporation. Copyright @ 2020 Oracle and/or its affiliates.2
  • 3.
    Who am I? about.me/lefred Copyright @ 2020 Oracle and/or its affiliates.3
  • 4.
    Frédéric Descamps @lefred MySQL Evangelist ManagingMySQL since 3.20 devops believer living in Belgium h ps://lefred.be Copyright @ 2020 Oracle and/or its affiliates.4
  • 5.
    Where are wein 2020 ? MySQL 8.0.22 Copyright @ 2020 Oracle and/or its affiliates.5
  • 6.
    DB-Engines 2020 Database Ranking Copyright@ 2020 Oracle and/or its affiliates.6
  • 7.
    DB-Engines 2020 Database Ranking MySQLis the most popular Open Source database Copyright @ 2020 Oracle and/or its affiliates.6
  • 8.
    MySQL is theDBMS of the Year 2019 ! Copyright @ 2020 Oracle and/or its affiliates.7
  • 9.
    MySQL Developer Popularity StackOver ow Developer Survey 2020 Copyright @ 2020 Oracle and/or its affiliates.8
  • 10.
    MySQL is themost popular database with developers MySQL Developer Popularity Stack Over ow Developer Survey 2020 Copyright @ 2020 Oracle and/or its affiliates.8
  • 11.
    Happy 25th AnniversaryMySQL Copyright @ 2020 Oracle and/or its affiliates.9
  • 12.
    One giant leapfor SQL MySQL 8.0 Copyright @ 2020 Oracle and/or its affiliates.10
  • 13.
    "This is alandmark release as MySQL eventually evolved beyond SQL-92 and the purely relational dogma. Among a few other standard SQL features, MySQL now supports window functions (over) and common table expressions (with). Without a doubt, these are the two most important post-SQL-92 features.” MySQL 8.0: one giant leap for SQL Copyright @ 2020 Oracle and/or its affiliates.11
  • 14.
    and still innovating! Credits: @MarkusWinand - @ModernSQL Copyright @ 2020 Oracle and/or its affiliates.12
  • 15.
    Credits: @MarkusWinand -@ModernSQL SQL: RECURSION / CTEs Copyright @ 2020 Oracle and/or its affiliates.13
  • 16.
    Credits: @MarkusWinand -@ModernSQL SQL: LATERAL Copyright @ 2020 Oracle and/or its affiliates.14
  • 17.
    Credits: @MarkusWinand -@ModernSQL SQL: Analytical / Window Functions Copyright @ 2020 Oracle and/or its affiliates.15
  • 18.
    Credits: @MarkusWinand -@ModernSQL SQL: Analytical / Window Functions Copyright @ 2020 Oracle and/or its affiliates.16
  • 19.
    Credits: @MarkusWinand -@ModernSQL SQL: JSON_TABLE Copyright @ 2020 Oracle and/or its affiliates.17
  • 20.
    Credits: @MarkusWinand -@ModernSQL SQL: JSON_TABLE Copyright @ 2020 Oracle and/or its affiliates.18
  • 21.
    This function isdescribed in SQL 2016, chapter 6.27 and is also implemented in: Oracle SQL Server DB2 SQL: JSON_VALUE       NEW in 8.0.21 Copyright @ 2020 Oracle and/or its affiliates.19
  • 22.
    MySQL Document Store I❤JSON & NoSQL Copyright @ 2020 Oracle and/or its affiliates.20
  • 23.
    Copyright @ 2020Oracle and/or its affiliates.21
  • 24.
    * CREATE * READ *UPDATE * DELETE col->add({title: 'MySQL is Great', author: 'lefred' }) col-> nd() collection.modify('author = "lefred"').set('author', 'kenny') col.remove('author = "lefred"') MySQL supports JSON & CRUD operations Copyright @ 2020 Oracle and/or its affiliates.22
  • 25.
    * CREATE * READ *UPDATE * DELETE col->add({title: 'MySQL is Great', author: 'lefred' }) col-> nd() collection.modify('author = "lefred"').set('author', 'kenny') col.remove('author = "lefred"') MySQL supports JSON & CRUD operations It's possible to use MySQL without a single line of SQL ! Copyright @ 2020 Oracle and/or its affiliates.22
  • 26.
    MySQL supports JSON& CRUD operations Copyright @ 2020 Oracle and/or its affiliates.23
  • 27.
    NoSQL + SQL= MySQL Copyright @ 2020 Oracle and/or its affiliates.24
  • 28.
    MySQL 8.0 isalso refactoring New Volcano Iterator Copyright @ 2020 Oracle and/or its affiliates.25
  • 29.
    Modular Easy to Extend Eachiterator encapsulates one operation Same interface for all iterators All operations can be connected MySQL New Iterator Executor Copyright @ 2020 Oracle and/or its affiliates.26
  • 30.
    Modular Easy to Extend Eachiterator encapsulates one operation Same interface for all iterators All operations can be connected MySQL New Iterator Executor Copyright @ 2020 Oracle and/or its affiliates.26
  • 31.
    EXPLAIN FORMAT=TREE Copyright @2020 Oracle and/or its affiliates.27
  • 32.
    EXPLAIN ANALYZE Instruments andexecutes the query Estimated cost Actual execution statistics Time to return rst row Time to return all rows Number of rows returned Number of loops Uses the new tree output format also available in EXPLAIN Copyright @ 2020 Oracle and/or its affiliates.28
  • 33.
    EXPLAIN ANALYZE Copyright @2020 Oracle and/or its affiliates.29
  • 34.
    EXPLAIN ANALYZE Copyright @2020 Oracle and/or its affiliates.30
  • 35.
    EXPLAIN ANALYZE Copyright @2020 Oracle and/or its affiliates.31
  • 36.
    EXPLAIN ANALYZE Copyright @2020 Oracle and/or its affiliates.32
  • 37.
    EXPLAIN ANALYZE Copyright @2020 Oracle and/or its affiliates.33
  • 38.
    Hash Join Typically fasterthan nested loop for large result sets In-memory if possible Spill to disk if necessary Used in all types of joins (inner, equi, outer, semi, anti) Replaces BNL in query plans Copyright @ 2020 Oracle and/or its affiliates.34
  • 39.
    Hash Join: performance Copyright@ 2020 Oracle and/or its affiliates.35
  • 40.
    Performance & Scalability InnoDB& Binary Logs - latest changes Copyright @ 2020 Oracle and/or its affiliates.36
  • 41.
    Redo logging cannow be enabled and disable Very useful during initial data load ! mysql> ALTER INSTANCE DISABLE INNODB REDO_LOG; Copyright @ 2020 Oracle and/or its affiliates.37
  • 42.
    MySQL 8.0: SysbenchIO-bound OLTP_RW, 8 tables, 50M rows each Redo logging can now be enabled and disable Very useful during initial data load ! mysql> ALTER INSTANCE DISABLE INNODB REDO_LOG; New Double Write Bu er     15x Faster !! Copyright @ 2020 Oracle and/or its affiliates.37
  • 43.
    New Binlog Compression! Credits: @JWKrogh - h ps://mysql.wisborg.dk/2020/05/07/mysql-compressed-binary-logs/ Copyright @ 2020 Oracle and/or its affiliates.38
  • 44.
    New Binlog Compression! Credits: @JWKrogh - h ps://mysql.wisborg.dk/2020/05/07/mysql-compressed-binary-logs/ Copyright @ 2020 Oracle and/or its affiliates.38
  • 45.
    and of courseMySQL Clone Copyright @ 2020 Oracle and/or its affiliates.39
  • 46.
    Usability always improving usability! Copyright @ 2020 Oracle and/or its affiliates.40
  • 47.
    Error log availablein performance_schema ! Copyright @ 2020 Oracle and/or its affiliates.41
  • 48.
    Error log availablein performance_schema ! Copyright @ 2020 Oracle and/or its affiliates.41
  • 49.
    SOURCE_CONNECTION_AUTO_FAILOVER With MySQL 8.0.22there is new asynchronous connection failover mechanism to automatically establish an asynchronous (source to replica) replication connection to a new source after the existing connection from a replica to its source fails. Copyright @ 2020 Oracle and/or its affiliates.42
  • 50.
    Solutions Easy toDeploy Database Architectures Copyright @ 2020 Oracle and/or its affiliates.43
  • 51.
    MySQL InnoDB Cluster "Asingle product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use." Copyright @ 2020 Oracle and/or its affiliates.44
  • 52.
    MySQL InnoDB Cluster "Asingle product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use." Copyright @ 2020 Oracle and/or its affiliates.44
  • 53.
    High Available DistributedMySQL DB Fault tolerance Automatic failover Active/Active update anywhere (limits apply) Automatic membership management Adding/removing members Network partitions, failures Con ict detection and resolution Prevents data loss GPL MySQL InnoDB Cluster "A single product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use." Copyright @ 2020 Oracle and/or its affiliates.44
  • 54.
    Introducing MySQL InnoDBReplicaSet! 8.0.19 Feature! Fully integrated MySQL Router Automatic Routing Ease of use with MySQL Shell Con guring, Adding, Removing members Automatic Member Provisioning (CLONE) MySQL InnoDB Replicaset Copyright @ 2020 Oracle and/or its affiliates.45
  • 55.
    Replication Architecture: (manual) Switchover& Failover (asynchronous) Read Scaleout 'Simple' Replication architecture: no network/hardware requirements Providing Availability on PRIMARY when issues with secondaries or network MySQL InnoDB Replicaset Copyright @ 2020 Oracle and/or its affiliates.46
  • 56.
    One Product: MySQL Allcomponents developed together Integration of all components Full stack testing MySQL InnoDB Cluster & ReplicaSet - Goals Copyright @ 2020 Oracle and/or its affiliates.47
  • 57.
    One Product: MySQL Allcomponents developed together Integration of all components Full stack testing Easy to Use One client: MySQL Shell Integrated orchestration Homogenous servers MySQL InnoDB Cluster & ReplicaSet - Goals Copyright @ 2020 Oracle and/or its affiliates.47
  • 58.
    One Product: MySQL Allcomponents developed together Integration of all components Full stack testing Easy to Use One client: MySQL Shell Integrated orchestration Homogenous servers MySQL InnoDB Cluster & ReplicaSet - Goals Support DNS-SRV since 8.0.19 with our connectors Copyright @ 2020 Oracle and/or its affiliates.47
  • 59.
    Solutions Easy toDeploy Copyright @ 2020 Oracle and/or its affiliates.48
  • 60.
    MySQL InnoDB ClusterMySQL InnoDB ReplicaSet js> c admin@mysql1 js> cluster = dba.createCluster('cluster') js> c admin@mysql1 js> rs = dba.createReplicaSet('replicaset') Solutions Easy to Deploy Copyright @ 2020 Oracle and/or its affiliates.48
  • 61.
    MySQL InnoDB ClusterMySQL InnoDB ReplicaSet js> c admin@mysql1 js> cluster = dba.createCluster('cluster') js> c admin@mysql1 js> rs = dba.createReplicaSet('replicaset') Con gure server to add later js> dba.con gureInstance('admin@mysql2') js> dba.con gureReplicaSetInstance('admin@mysql2') Solutions Easy to Deploy Copyright @ 2020 Oracle and/or its affiliates.48
  • 62.
    MySQL InnoDB ClusterMySQL InnoDB ReplicaSet js> c admin@mysql1 js> cluster = dba.createCluster('cluster') js> c admin@mysql1 js> rs = dba.createReplicaSet('replicaset') Con gure server to add later js> dba.con gureInstance('admin@mysql2') js> dba.con gureReplicaSetInstance('admin@mysql2') Add server to the Cluster js> cluster.addInstance('admin@mysql2') js> rs.addInstance('admin@mysql2') Solutions Easy to Deploy Copyright @ 2020 Oracle and/or its affiliates.48
  • 63.
    MySQL InnoDB ClusterMySQL InnoDB ReplicaSet js> c admin@mysql1 js> cluster = dba.createCluster('cluster') js> c admin@mysql1 js> rs = dba.createReplicaSet('replicaset') Con gure server to add later js> dba.con gureInstance('admin@mysql2') js> dba.con gureReplicaSetInstance('admin@mysql2') Add server to the Cluster js> cluster.addInstance('admin@mysql2') js> rs.addInstance('admin@mysql2') Bootstrap MySQL Router $ sudo mysqlrouter --user=mysqlrouter --bootstrap $ sudo systemctl start mysqlrouter $ sudo mysqlrouter --user=mysqlrouter --bootstrap $ sudo systemctl start mysqlrouter Solutions Easy to Deploy Copyright @ 2020 Oracle and/or its affiliates.48
  • 64.
    MySQL Database ArchitectureSummary Single Region Requirement Solution RTO = hours,    RPO = minutes MySQL Server w. Backups & Binary Log Sync RTO = hours,    RPO = less than a second MySQL Server w. Backups & Binary Log Stream RTO = minutes, RPO = less than a second MySQL InnoDB ReplicaSet RTO = seconds, RPO = 0 MySQL InnoDB Cluster Multi Regions Requirement Solution RTO = minutes, RPO = seconds MySQL InnoDB Cluster w. asynchronous replica RTO = seconds and/or RPO = 0 Multi Region MySQL InnoDB Cluster w: - 2 regions: consistency level AFTER - 3 regions deployment Copyright @ 2020 Oracle and/or its affiliates.49
  • 65.
    MySQL Database ArchitectureSummary (2) Other Requirements Requirement Solution Fully Consistent Reads MySQL InnoDB Cluster w. custom consistency levels Multi Primary Single Region MySQL InnoDB Cluster Multi Primary Multi Regions Multi Regions MySQL InnoDB Cluster Copyright @ 2020 Oracle and/or its affiliates.50
  • 66.
    MySQL Shell the besttool for DBAs Copyright @ 2020 Oracle and/or its affiliates.51
  • 67.
    MySQL Shell -Extensible Copyright @ 2020 Oracle and/or its affiliates.52
  • 68.
    MySQL Shell -Extensible Copyright @ 2020 Oracle and/or its affiliates.53
  • 69.
  • 70.
    MySQL Database Service MDSin OCI Copyright @ 2020 Oracle and/or its affiliates.55
  • 71.
    Various options butmany questions How to get the latest features, security xes? How to provide security & regulatory compliance? How to provide compatibility with on-premises? How to integrate with Oracle technologies? How to get expert MySQL technical support? Only Oracle provides a MySQL Database Service 100% developed and managed by the MySQL team 100% built on MySQL Enterprise Edition 100% compatible with on-premises MySQL 100% compatible with Oracle technologies 100% supported by the MySQL Team MySQL in the Cloud Copyright @ 2020 Oracle and/or its affiliates.56
  • 72.
    MySQL Database Service 100%developed, managed, and supported by the MySQL team Copyright @ 2020 Oracle and/or its affiliates.57
  • 73.
    MySQL Database Service 1Year TCO Copyright @ 2020 Oracle and/or its affiliates.58
  • 74.
    Cloud Regions Situation asOct 1st 2020 Copyright @ 2020 Oracle and/or its affiliates.59
  • 75.
    Black Lives Matter #blacklivesmaer Copyright @ 2020 Oracle and/or its affiliates.60
  • 76.
    Terminology Changes We decidedto change terminoly in our products. From commands, output, manuals, source code and more ! Copyright @ 2020 Oracle and/or its affiliates.61
  • 77.
    Terminology Changes We decidedto change terminoly in our products. From commands, output, manuals, source code and more ! Of course this is a huge amount of work and will be distributed in several releases. Copyright @ 2020 Oracle and/or its affiliates.61
  • 78.
    Please check Kenny'sannouncement for more info: h ps://mysqlhighavailability.com/mysql- terminology-updates/ Terminology Changes We decided to change terminoly in our products. From commands, output, manuals, source code and more ! Of course this is a huge amount of work and will be distributed in several releases. Copyright @ 2020 Oracle and/or its affiliates.61
  • 79.
    Terminology Changes (2) Youcan already see some changes in 8.0.22: mysql> show replica statusG *************************** 1. row *************************** Replica_IO_State: Waiting for master to send event Source_Host: 127.0.0.1 Source_User: rsandbox Source_Port: 21223 Connect_Retry: 60 Source_Log_File: mysql-bin.000002 Read_Source_Log_Pos: 156 Relay_Log_File: mysql-relay.000006 Relay_Log_Pos: 371 Relay_Source_Log_File: mysql-bin.000002 Replica_IO_Running: Yes Replica_SQL_Running: Yes ... Source_SSL_Allowed: No ... Seconds_Behind_Source: 0 Source_SSL_Verify_Server_Cert: No Copyright @ 2020 Oracle and/or its affiliates.62
  • 80.
    Open Source MySQL isGPL Copyright @ 2020 Oracle and/or its affiliates.63
  • 81.
    MySQL Server :GPL MySQL Router : GPL MySQL Shell : GPL MySQL Clone : GPL MySQL Workbench : GPL Copyright @ 2020 Oracle and/or its affiliates.64
  • 82.
    MySQL Server :GPL MySQL Router : GPL MySQL Shell : GPL MySQL Clone : GPL MySQL Workbench : GPL And we accept contributions ! Copyright @ 2020 Oracle and/or its affiliates.64
  • 83.
    Thank you !-293 contributions - 68 contributors (employees not counted 😉 ) Top 3 contributors: Facebook: 59 Daniël van Eeden: 41 Laurynas Biveinis: 17 MySQL 8.0 is also Copyright @ 2020 Oracle and/or its affiliates.65
  • 84.
    Copyright @ 2020Oracle and/or its affiliates.66
  • 85.
    Join us onMySQL Comunity Slack h ps://lefred.be/mysql-community-on-slack   Copyright @ 2020 Oracle and/or its affiliates.67
  • 86.
    MySQL 8.0 DBACerti cation now available Copyright @ 2020 Oracle and/or its affiliates.68
  • 87.
    MySQL 8.0 DeveloperCerti cation now available Copyright @ 2020 Oracle and/or its affiliates.69
  • 88.
    Thank you ! Copyright@ 2020 Oracle and/or its affiliates.70
  • 89.
      Soon MySQL 5.6will be EOL ! < than 4 months ! Copyright @ 2020 Oracle and/or its affiliates.71