This is the online live version of the State of The Dolphin during Percona Live Online in May 2020.Discover what's new in MySQL 8.0, the Document Store, CTEs, Window Functions, Lateral, JSON_TABLE, the new Volcano Iterator, EXPLAIN ANLYZE, HASH JOIN, the new double write buffer, binlog compression, InnoDB Cluster, InnoDB ReplicaSet, DNS-SRV.... and last but not least our Contributors who made MySQL 8.0 so Great !
2.
Safe Harbor
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.
Statement in this presentation relating to Oracle´s future plans, expectations, beliefs, intentions and ptospects
are "forward-looking statements" and are subject to material risks and uncertainties. A detailed discussion of
these factors and other risks that a ect our business is contained in Oracle´s Securities and Exchange
Commission (SEC) lings, including our most recent reports on Form 10-K and Form 10-Q under the heading
"Risk Factors". These lings are available on the SEC´s website or on Oracle´s website at
h p://www.oracle.com/investor. All information in this presentation is current as of September 2019 and Oracle
undertakes no duty to update any statement in light of new information or future events.
Copyright @ 2020 Oracle and/or its affiliates.
2 / 71
10. MySQL is the most popular database
with developers
MySQL Developer Popularity
Stack Overflow Developer Survey 2019
Copyright @ 2020 Oracle and/or its affiliates.
10 /
71
12. MySQL 8.0
One giant leap for SQL
Copyright @ 2020 Oracle and/or its affiliates.
12 /
71
13. "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.
13 /
71
14. and now after 2 years ?
Credits: @MarkusWinand - @ModernSQL
Copyright @ 2020 Oracle and/or its affiliates.
14 /
71
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
It's possible to use MySQL without a single line
of SQL !
Copyright @ 2020 Oracle and/or its affiliates.
24 /
71
25. MySQL supports JSON & CRUD operations
Copyright @ 2020 Oracle and/or its affiliates.
25 /
71
26. NoSQL + SQL =
MySQL
Copyright @ 2020 Oracle and/or its affiliates.
26 /
71
27. New Volcano Iterator
MySQL 8.0 is also refactoring
Copyright @ 2020 Oracle and/or its affiliates.
27 /
71
28. 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.
28 /
71
29. 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.
29 /
71
31. 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.
31 /
71
37. 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.
37 /
71
46. 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.
46 /
71
47. 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.
47 /
71
48. 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.
48 /
71
49. 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.
49 /
71
50. 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.
50 /
71
51. 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.
51 /
71
52. 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.
52 /
71
53. 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.
53 /
71
54. MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
54 /
71
55. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
js> c admin@mysql1
js> cluster = dba.createCluster('cluster')
js> c admin@mysql1
js> rs = dba.createReplicaSet('replicaset')
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
55 /
71
56. 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')
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
56 /
71
57. 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')
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
57 /
71
58. 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
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
58 /
71
59. MySQL Shell - Extensible
Copyright @ 2020 Oracle and/or its affiliates.
59 /
71
61. MySQL is GPL
Open Source
Copyright @ 2020 Oracle and/or its affiliates.
61 /
71
62. MySQL Server : GPL
MySQL Router : GPL
MySQL Shell : GPL
MySQL Clone Plugin : GPL
MySQL Workbench : GPL
Copyright @ 2020 Oracle and/or its affiliates.
62 /
71
63. MySQL Server : GPL
MySQL Router : GPL
MySQL Shell : GPL
MySQL Clone Plugin : GPL
MySQL Workbench : GPL
And we accept contributions !
Copyright @ 2020 Oracle and/or its affiliates.
63 /
71
64. Thank you !- 264 contributions
- 58 contributors (employees not counted 😉)
Top 3 contributors:
Facebook: 52
Daniël van Eeden: 39
Laurynas Biveinis: 17
MySQL 8.0 is also
Copyright @ 2020 Oracle and/or its affiliates.
64 /
71