SlideShare a Scribd company logo
1 of 45
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
MySQL Server 8.0
Morgan Tocker
MySQL Product Manager (Server)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
Copyright © 2017, 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.
3
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 – Improvements across the board
• Replication
• InnoDB
• Optimizer
• Security
• Performance Schema
• GIS
• Triggers
• Partitioning
• New! SYS Schema
• New! JSON
• Performance
4
200+ new
features
In total!
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5
The MySQL 5.7 Story (cont.)
JSON Type
JSON Functions
Virtual Columns
GIS Improvements
Observability
Manageability
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
The MySQL 8.0 Story
• Mobile First
• Developer Centric
• Premium placed on time to Market
6
“Making MySQL Better for Modern Applications”
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
GIS
• Geography Support
• Spatial Reference Systems (SRS) Support
• Standard compliant axis ordering in import/export functions
• Helper functions to manipulate and convert data:
• st_x(geom, x)
• st_y(geom, y)
• st_srid(geom, srid)
7
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
JSON Functions
8
MySQL 5.7 and 8.0
JSON_ARRAY_APPEND()
JSON_ARRAY_INSERT()
JSON_ARRAY()
JSON_CONTAINS_PATH()
JSON_CONTAINS()
JSON_DEPTH()
JSON_EXTRACT()
JSON_INSERT()
JSON_KEYS()
JSON_LENGTH()
JSON_MERGE_[PATCH]()
JSON_OBJECT()
JSON_QUOTE()
JSON_REMOVE()
JSON_REPLACE()
JSON_SEARCH()
JSON_SET()
JSON_TYPE()
JSON_UNQUOTE()
JSON_VALID()
JSON_PRETTY()
JSON_STORAGE_SIZE()
JSON_STORAGE_FREE()

JSON_MERGE_PRESERVE()
JSON_ARRAYAGG()
JSON_OBJECTAGG()
JSON_TABLE() *labs
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
SELECT * FROM seats,
JSON_TABLE(doc, "$.properties.amenities[*]" COLUMNS (
id for ordinality,
amenity_type VARCHAR(100) PATH "$.type",
distance float PATH '$.distance_in_meters')
) AS amenities
WHERE seats.id = 28100
AND amenities.amenity_type IN ('snacks', 'bar')
ORDER BY amenities.distance;
+------+------------------+------------+
| id | amenity_type | distance |
+------+------------------+------------+
| 2 | bar | 100.538 |
| 3 | snacks | 136.647 |
+------+------------------+------------+
2 rows in set (0.00 sec)
9
Labs
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
utfmb4 as default character set
• Support for the latest Unicode 9.0
• Accent and case sensitive collations
• Language specific collations
• including Japanese and Russian!
10
MySQL 8.0
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
UTF-8
• UTF-8 is the dominating
character set in today’s
applications
• Requires 1-4 bytes for storing
characters
• Historically a performance
problem
The character set for the Web
11
https://en.wikipedia.org/wiki/UTF-8
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL 8.0 vs MySQL 5.7 utf8mb4
12
SELECT DISTINCT_RANGES
0
45000
90000
135000
180000
8 16 64 128 512 1024
OLTP RO
0
10000
20000
30000
40000
8 16 64 128 512 1024
OLTP RW
0
7500
15000
22500
30000
8 16 64 128 512 1024
+300-350% in OLTP RO
+176-233% in OLTP RW
+1500-1800% in SELECT DISTINCT_RANGES
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL 8.0 utf8mb4 vs MySQL 5.7 utf8mb3
13
SELECT DISTINCT_RANGES
0
45000
90000
135000
180000
8 16 64 128 512 1024
OLTP RO
0
10000
20000
30000
40000
8 16 64 128 512 1024
OLTP RW
0
7500
15000
22500
30000
8 16 64 128 512 1024
+270-340% in OLTP RO
+150-200% in OLTP RW
+1300-1600% in SELECT DISTINCT_RANGES
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! UUID and Bit-wise Improvements
• Functions to convert UUID to and from binary:
– UUID_TO_BIN()
– BIN_TO_UUID()
– plus IS_UUID()
• Bit-wise operations on binary data types
• Bit-wise operations on binary data types
– Designed with IPv6 in mind:
– INET6_ATON(address) & INET6_ATON(network)
14
Feature Request

from Developers
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
UUID_TO_BIN Optimization
15
Insert Performance
26 26.75 27.5 28.25 29
Optimized
Original
• Binary format is now smaller and insert-order efficient:
11e678fe53303f87a4778c89a52c4f3b
53303f87-78fe-11e6-a477-8c89a52c4f3bFrom VARCHAR(36)
To VARBINARY(16)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Better Handling of Hot Row Contention
16
SELECT * FROM tickets
WHERE id IN (1,2,3,4)
AND order_id IS NULL
FOR UPDATE
NOWAIT;
SELECT * FROM tickets
WHERE id IN (1,2,3,4)
AND order_id IS NULL
FOR UPDATE
SKIP LOCKED;
Error
immediately if a
row is already
locked
Non
deterministically
skip over locked
rows
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Common Table Expressions
• “With queries”
• Both Recursive and Non-Recursive Forms
• Simplifies writing complex SQL:



WITH t1 AS (SELECT * FROM tblA WHERE a=‘b’)

SELECT * FROM t1;
17
Feature Request

from Developers
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 18
Print 1 to 10
Recursive CTE (Example)
a
1
2
3
4
5
6
7
8
9
10
WITH RECURSIVE qn AS

( SELECT 1 AS a 

UNION ALL

SELECT 1+a FROM qn WHERE a<10

)

SELECT * FROM qn;
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Window Functions
19
Improving Support for Analytics
Feature Request

from Developers
SELECT name, department_id, salary,
SUM(salary)

OVER (PARTITION BY department_id)
AS department_total
FROM employee
ORDER BY department_id, name;
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 20
Improved to consider buffer pool fit
Optimizer Cost Model
Feature Request

from DBAs
SELECT * FROM Country

WHERE population > 20000000;
Model for a table scan:
# pages in table *
(IO_BLOCK_READ_COST |
MEMORY_BLOCK_READ_COST)

# records * ROW_EVALUATE_COST
= 25.4 100% in memory
= 29.9 100% on disk
Model for a range scan:
# records_in_range *
(IO_BLOCK_READ_COST |
MEMORY_BLOCK_READ_COST)

# records_in_range *
ROW_EVALUATE_COST + #
records_in_range *
ROW_EVALUATE_COST 

= 22.5 100% in memory
= 60 100% on disk
Model accounts for
memory fit. For data on disk an IO
block read defaults to 1.0. In
memory defaults to 0.25.
Much larger
performance difference for
range scan not in memory
(good)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 21
New! Histograms
• Track distribution skew of data
• Used for operations in the format:

COLUMN operator CONSTANT
• Much lower cost than adding an index
Feature Request

from DBAs
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Descending Indexes
CREATE TABLE t1 (

a INT,

b INT,

INDEX a_desc_b_asc (a DESC, b ASC)

);
22
For B+tree indexes
mysql> EXPLAIN SELECT * FROM t1 ORDER BY a DESC, b ASC;
.. +--------------+---------+------+------+----------+-------------+
.. | key | key_len | ref | rows | filtered | Extra |
.. +--------------+---------+------+------+----------+-------------+
.. | a_desc_b_asc | 10 | NULL | 10 | 100.00 | Using index |
.. +--------------+---------+------+------+----------+-------------+
mysql 8.0> EXPLAIN SELECT * FROM t1 ORDER BY a ASC, b ASC;
.. +--------------+---------+------+------+----------+-----------------------------+
.. | key | key_len | ref | rows | filtered | Extra |
.. +--------------+---------+------+------+----------+-----------------------------+
.. | a_desc_b_asc | 10 | NULL | 10 | 100.00 | Using index; Using filesort |
.. +--------------+---------+------+------+----------+-----------------------------+
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Invisible Indexes
• Indexes are “hidden” to the MySQL Optimizer
– Not the same as “disabled indexes”
– Contents are fully up to date and maintained by DML
• Two use cases:
– Soft Delete (Recycle Bin)
– Staged Rollout
23
Feature Request

from DBAs
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 24
Example Usage
Soft Delete
• I don’t think this index is used any more:

ALTER TABLE Country ALTER INDEX c INVISIBLE;
• I need to revert:

ALTER TABLE Country ALTER INDEX c VISIBLE;
• It is now safe to drop:

ALTER TABLE Country DROP INDEX c;
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Staged Rollout
• Adding any new index can change existing execution plans
• All change introduces risk of regression



ALTER TABLE Country ADD INDEX c (Continent)
INVISIBLE;

# after some time

ALTER TABLE Country ALTER INDEX c VISIBLE;
25
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 26
SELECT * FROM information_schema.statistics WHERE is_visible='NO';

*************************** 1. row ***************************

TABLE_CATALOG: def

TABLE_SCHEMA: world

TABLE_NAME: Country

NON_UNIQUE: 1

INDEX_SCHEMA: world

INDEX_NAME: c

SEQ_IN_INDEX: 1

COLUMN_NAME: Continent

COLLATION: A

CARDINALITY: 7

SUB_PART: NULL

PACKED: NULL

NULLABLE:

INDEX_TYPE: BTREE

COMMENT: disabled

INDEX_COMMENT:

IS_VISIBLE: NO
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 27
Evolution from MySQL 5.5 to 8.0
Performance Schema
Feature Request

from DBAs
MySQL 8.0
Histograms
Indexes
Data Locks instrumentation
SQL Errors instrumentation
Variables Instrumentation
Replication
Table plugin
Improved Defaults

Digest Query Sample 
MySQL 5.7
Memory Instrumentation
Prepared Statements Instrumentation
Transactions Instrumentation
Scalable Memory Allocation
Bundled SYS schema
Lower Overhead
MySQL 5.6
Statement Instrumentation
Lower Overhead
MySQL 5.5
Event Waits
Mutexes
Files
Threads
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 28
Performance Comparison
Query Time
0 10 20 30 40
MySQL 8.0
MySQL 5.7
Over 30x faster!
SELECT * FROM sys.session

1000 active sessions
Time in Seconds (Lower is better)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 29
SELECT * FROM test.no_table;
ERROR 1146 (42S02): Table 'test.no_table' doesn't exist
SELECT * FROM performance_schema.events_errors_summary_global_by_error

WHERE sum_error_handled > 0 OR SUM_ERROR_RAISED > 0G
*************************** 1. row ***************************
ERROR_NUMBER: 1146
ERROR_NAME: ER_NO_SUCH_TABLE
SQL_STATE: 42S02
SUM_ERROR_RAISED: 1
SUM_ERROR_HANDLED: 0
FIRST_SEEN: 2016-09-11 20:52:42
LAST_SEEN: 2016-09-11 20:52:42
1 row in set (0.00 sec)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
query: INSERT INTO `t1` VALUES (...)
db: mysqlslap
total_latency: 54.43 s
exec_count: 58377
lock_latency: 1.70 s
..
digest: 4e0c5b796c4052b0da4548fd7cb694be
first_seen: 2017-04-16 20:59:16
last_seen: 2017-04-16 21:00:34
latency_distribution:
0us+
10us+ #############################
100us+ ####################
1ms+ #
10ms+
100ms+
1s+
10s+
New! Performance Schema Histograms
30
+---------+--------------------------------+-------+
| bucket | visualization | count |
+---------+--------------------------------+-------+
| 0us+ | # | 1253 |
| 10us+ | ############################## | 43102 |
| 100us+ | ################# | 25013 |
| 1ms+ | # | 2003 |
| 10ms+ | | 325 |
| 100ms+ | | 17 |
| 1s+ | | 0 |
| 10s+ | | 0 |
+---------+--------------------------------+-------+
8 rows in set (0.08 sec)
Showing distribution of query time from a run of mysqlslap
Generated with a quick CTE over
events_statements_histogram_global
Feature Request

from DBAs
Available on a per
statement digest level. Can quickly
aggregate top-N statements with
latency distribution.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Performance Schema Data Locks
31
SELECT thread_id, object_name, index_name, lock_type, lock_mode, lock_data 

FROM performance_schema.data_locks WHERE object_name = 'seats';
+-----------+-------------+------------+-----------+-----------+-----------+
| thread_id | object_name | index_name | lock_type | lock_mode | lock_data |
+-----------+-------------+------------+-----------+-----------+-----------+
| 33 | seats | NULL | TABLE | IX | NULL |
| 33 | seats | PRIMARY | RECORD | X | 3, 5 |
| 33 | seats | PRIMARY | RECORD | X | 3, 6 |
| 33 | seats | PRIMARY | RECORD | X | 4, 5 |
| 33 | seats | PRIMARY | RECORD | X | 4, 6 |
+-----------+-------------+------------+-----------+-----------+-----------+
5 rows in set (0.00 sec)
Feature Request

from DBAs
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 32
New! Persist Configuration
• Persist GLOBAL Server Variables
– SET PERSIST max_connections = 500;
– SET PERSIST_ONLY innodb_log_file_size = 128*1024*1024;
• Examples Include:
– Offline_mode
– Read_Only
• Requires no filesystem access
Cloud Friendly
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Variables Info
33
Find the source of variables changed on your installation
SELECT * FROM performance_schema.variables_info WHERE variable_source != 'COMPILED';
+------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+
| VARIABLE_NAME | VARIABLE_SOURCE | VARIABLE_PATH | MIN_VALUE | MAX_VALUE | SET_TIME | SET_USER | SET_HOST |
+------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+
| autocommit | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| basedir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| bind_address | EXPLICIT | [..]my.sandbox.cnf | 0 | 0 | 2017-04-16 21:08:11 | | |
| character_set_client | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| character_set_results | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| collation_connection | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| datadir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| foreign_key_checks | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| log_error | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| lower_case_table_names | EXPLICIT | [..]my.sandbox.cnf | 0 | 2 | 2017-04-16 21:08:11 | | |
| pid_file | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| plugin_dir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| port | COMMAND_LINE | | 0 | 65535 | 2017-04-16 21:08:11 | | |
| socket | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | |
| sql_mode | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| sql_notes | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| time_zone | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
| tmpdir | EXPLICIT | [..]my.sandbox.cnf | 0 | 0 | 2017-04-16 21:08:11 | | |
| unique_checks | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost |
+------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+
19 rows in set (0.00 sec)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
New! Transactional Data Dictionary
• Crash-safe Database
• Common data dictionary for
the server and InnoDB
• Crash-safe & Atomic DDL
• CREATE USER <userlist>, DROP
DATABASE with all-or-none
semantic
• Simplifies replication failure
cases
34
• Meta-data locking for FK
constraints
• FK moved from InnoDB to
server layer
• Scalable Information Schema
• Queries are now executed as
set of SQL views on tables
• Large performance
improvements
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
30x
Faster
SELECT TABLE_SCHEMA,

TABLE_NAME, TABLE_TYPE,

ENGINE, ROW_FORMAT

FROM information_schema.tables

WHERE TABLE_SCHEMA LIKE 'db%';
35
Test Performed with 100 schemas, each with 50 tables.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Defaults
• Event Scheduler On
• Utf8mb4 Character Set
• Performance Schema: Memory,
Transactions, MDL
• InnoDB: autoinc_lock_mode=2,
flush_neighbors=0,
max_dirty_pages_pct_lwm=10,
max_dirty_pages_pct
default=90
• Improvements to back_log
auto-calculation
• max_error_count=1024
• max_allowed_packet=64M
36
Server-Core
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Defaults (cont.)
• Binary Log, log-slave-updates on
• {master,relay-log}—info-repository = TABLE
• transaction-write-set-extraction = XXHASH64
• slave-rows-search-algorithms = ‘INDEX_SCAN,HASH_SCAN’
• expire_logs_days=30
• server-id=1
37
Replication
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
InnoDB Dedicated Server
• Great for Virtual Machines & Cloud Deployments
• Auto scales Log File Size, Buffer Pool Size, Flush Method
• Easiest way to enable:



SET PERSIST_ONLY innodb_dedicated_server = TRUE
38
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Performance Improvements
• Improved Query Consistency
• Histograms
• Improved Cost Model
• Faster Table/Range Scans
• FORCE INDEX skips index
dives where possible
• Expanded Hints Support
• JSON Partial Update
(Optimizer, Replication)
39
• Parallel Replication
• UTF8MB4
• Information Schema
• Performance Schema Indexes
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
QueriesperSecond
0
40,000
80,000
120,000
160,000
Users
1 2 4 8 16 32 64 128 256 512
MySQL 8.0 Labs
MySQL 5.7
MySQL 5.6
MySQL 8.0 Labs: Sysbench Benchmark: IO-bound OLTP RW Updates-only

Intel(R) Xeon(R) Platinum 8168 CPU
2CPU-sockets, 48cores-HT
2x Intel Optane
Oracle Linux 7.3
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
QueriesperSecond
0
300,000
600,000
900,000
1,200,000
Users
1 2 4 8 16 32 64 128 256 512
MySQL 8.0 Labs
MySQL 5.7
MySQL 5.6
MySQL 8.0 Labs: Sysbench Benchmark: IO-bound OLTP RO Point-Selects

Intel(R) Xeon(R) Platinum 8168 CPU
2CPU-sockets, 48cores-HT
2x Intel Optane
Oracle Linux 7.3
1,000,000+
QPS
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL 8.0 RC: Resource Group Example
QueriesperSecond
0
40,000
80,000
120,000
160,000
No Resource Group With Resource Group
Select
Update
System Configuration :
Oracle Linux 7,
Intel(R) Xeon(R) CPU E7-4860 2.27GHz
40 cores-HT
(40 Cores Shared) (40 Cores for Select)
(10 Cores for Update RG)
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• Source code now documented with Doxygen
• New Plugin Infrastructure
• Improved BLOB Storage
• Improved Memcached Interface
• InnoDB Auto Increment Persists
• Parser Refactoring
• Improvements to Temporary Tables
• C++11 and Toolchain Improvements
• GTID_PURGED always settable
• Undo tablespaces now dynamic
• In memory storage engine
• SQL Roles Support
• Encryption for Redo and General Tablespaces
• InnoDB Cats lock scheduler algorithm
• Improved Parallel Replication
• SQL Grouping Function
• Optimizer Trace detailed sort statistics
• Smaller Package Downloads
• Improved usability of cost constant configuration
43
All these features plus…
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 44
What's New MySQL 8.0?

More Related Content

What's hot

MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeAbel Flórez
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsOlivier DASINI
 
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinMySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinOlivier DASINI
 
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...Olivier DASINI
 
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...Dave Stokes
 
MySQL partitioning
MySQL partitioning MySQL partitioning
MySQL partitioning OracleMySQL
 
MySQL For Oracle DBA's and Developers
MySQL For Oracle DBA's and DevelopersMySQL For Oracle DBA's and Developers
MySQL For Oracle DBA's and DevelopersRonald Bradford
 
Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Olivier DASINI
 
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Ted Wennmark
 
MySQL 8.0 New Features -- September 27th presentation for Open Source Summit
MySQL 8.0 New Features -- September 27th presentation for Open Source SummitMySQL 8.0 New Features -- September 27th presentation for Open Source Summit
MySQL 8.0 New Features -- September 27th presentation for Open Source SummitDave Stokes
 
Ohio Linux Fest -- MySQL's NoSQL
Ohio Linux Fest -- MySQL's NoSQLOhio Linux Fest -- MySQL's NoSQL
Ohio Linux Fest -- MySQL's NoSQLDave Stokes
 
MySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMorgan Tocker
 
MySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourMySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourRonald Bradford
 
MySQL Performance Schema in 20 Minutes
 MySQL Performance Schema in 20 Minutes MySQL Performance Schema in 20 Minutes
MySQL Performance Schema in 20 MinutesSveta Smirnova
 

What's hot (20)

MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgrade
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern Applications
 
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinMySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
 
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
 
MySQL 5.7 + JSON
MySQL 5.7 + JSONMySQL 5.7 + JSON
MySQL 5.7 + JSON
 
MySQL Monitoring 101
MySQL Monitoring 101MySQL Monitoring 101
MySQL Monitoring 101
 
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
 
MySQL partitioning
MySQL partitioning MySQL partitioning
MySQL partitioning
 
MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017
 
MySQL For Oracle DBA's and Developers
MySQL For Oracle DBA's and DevelopersMySQL For Oracle DBA's and Developers
MySQL For Oracle DBA's and Developers
 
Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0
 
Perf Tuning Short
Perf Tuning ShortPerf Tuning Short
Perf Tuning Short
 
MySQL NoSQL APIs
MySQL NoSQL APIsMySQL NoSQL APIs
MySQL NoSQL APIs
 
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
 
MySQL 8.0 New Features -- September 27th presentation for Open Source Summit
MySQL 8.0 New Features -- September 27th presentation for Open Source SummitMySQL 8.0 New Features -- September 27th presentation for Open Source Summit
MySQL 8.0 New Features -- September 27th presentation for Open Source Summit
 
Ohio Linux Fest -- MySQL's NoSQL
Ohio Linux Fest -- MySQL's NoSQLOhio Linux Fest -- MySQL's NoSQL
Ohio Linux Fest -- MySQL's NoSQL
 
MySQL JSON Functions
MySQL JSON FunctionsMySQL JSON Functions
MySQL JSON Functions
 
MySQL Performance Metrics that Matter
MySQL Performance Metrics that MatterMySQL Performance Metrics that Matter
MySQL Performance Metrics that Matter
 
MySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD TourMySQL Best Practices - OTN LAD Tour
MySQL Best Practices - OTN LAD Tour
 
MySQL Performance Schema in 20 Minutes
 MySQL Performance Schema in 20 Minutes MySQL Performance Schema in 20 Minutes
MySQL Performance Schema in 20 Minutes
 

Similar to What's New MySQL 8.0?

Developers' mDay 2017. - Bogdan Kecman Oracle
Developers' mDay 2017. - Bogdan Kecman OracleDevelopers' mDay 2017. - Bogdan Kecman Oracle
Developers' mDay 2017. - Bogdan Kecman OraclemCloud
 
Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0
Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0
Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0mCloud
 
MySQL 8.0 Optimizer Guide
MySQL 8.0 Optimizer GuideMySQL 8.0 Optimizer Guide
MySQL 8.0 Optimizer GuideMorgan Tocker
 
What's New in MySQL 8.0 @ HKOSC 2017
What's New in MySQL 8.0 @ HKOSC 2017What's New in MySQL 8.0 @ HKOSC 2017
What's New in MySQL 8.0 @ HKOSC 2017Ivan Ma
 
MySQL 8.0 in a nutshell
MySQL 8.0 in a nutshellMySQL 8.0 in a nutshell
MySQL 8.0 in a nutshellOracleMySQL
 
MySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document StoreMySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document StoreAbel Flórez
 
20190713_MySQL開発最新動向
20190713_MySQL開発最新動向20190713_MySQL開発最新動向
20190713_MySQL開発最新動向Machiko Ikoma
 
MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMark Swarbrick
 
MySQL 8.0 Released Update
MySQL 8.0 Released UpdateMySQL 8.0 Released Update
MySQL 8.0 Released UpdateKeith Hollman
 
MySQL 5.7 New Features for Developers
MySQL 5.7 New Features for DevelopersMySQL 5.7 New Features for Developers
MySQL 5.7 New Features for DevelopersZohar Elkayam
 
제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQLTommy Lee
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document StoreRui Quelhas
 
MySQL 8 loves JavaScript
MySQL 8 loves JavaScript MySQL 8 loves JavaScript
MySQL 8 loves JavaScript Sanjay Manwani
 
Optimizer percona live_ams2015
Optimizer percona live_ams2015Optimizer percona live_ams2015
Optimizer percona live_ams2015Manyi Lu
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?Olivier DASINI
 
MySQL Goes to 8! FOSDEM 2020 Database Track, January 2nd, 2020
MySQL Goes to 8!  FOSDEM 2020 Database Track, January 2nd, 2020MySQL Goes to 8!  FOSDEM 2020 Database Track, January 2nd, 2020
MySQL Goes to 8! FOSDEM 2020 Database Track, January 2nd, 2020Geir Høydalsvik
 
OSC Online MySQL Version up
OSC Online MySQL Version upOSC Online MySQL Version up
OSC Online MySQL Version upDAISUKE INAGAKI
 
MySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinMySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinOlivier DASINI
 

Similar to What's New MySQL 8.0? (20)

Developers' mDay 2017. - Bogdan Kecman Oracle
Developers' mDay 2017. - Bogdan Kecman OracleDevelopers' mDay 2017. - Bogdan Kecman Oracle
Developers' mDay 2017. - Bogdan Kecman Oracle
 
Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0
Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0
Developers’ mDay u Banjoj Luci - Bogdan Kecman, Oracle – MySQL Server 8.0
 
MySQL 8.0.1 DMR
MySQL 8.0.1 DMRMySQL 8.0.1 DMR
MySQL 8.0.1 DMR
 
MySQL 8.0 Optimizer Guide
MySQL 8.0 Optimizer GuideMySQL 8.0 Optimizer Guide
MySQL 8.0 Optimizer Guide
 
What's New in MySQL 8.0 @ HKOSC 2017
What's New in MySQL 8.0 @ HKOSC 2017What's New in MySQL 8.0 @ HKOSC 2017
What's New in MySQL 8.0 @ HKOSC 2017
 
MySQL 8.0 in a nutshell
MySQL 8.0 in a nutshellMySQL 8.0 in a nutshell
MySQL 8.0 in a nutshell
 
MySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document StoreMySQL 5.7 - What's new, How to upgrade and Document Store
MySQL 5.7 - What's new, How to upgrade and Document Store
 
20190713_MySQL開発最新動向
20190713_MySQL開発最新動向20190713_MySQL開発最新動向
20190713_MySQL開発最新動向
 
MySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats newMySQL Tech Tour 2015 - 5.7 Whats new
MySQL Tech Tour 2015 - 5.7 Whats new
 
MySQL 8.0 Released Update
MySQL 8.0 Released UpdateMySQL 8.0 Released Update
MySQL 8.0 Released Update
 
MySQL 5.7 New Features for Developers
MySQL 5.7 New Features for DevelopersMySQL 5.7 New Features for Developers
MySQL 5.7 New Features for Developers
 
Mysql8for blr usercamp
Mysql8for blr usercampMysql8for blr usercamp
Mysql8for blr usercamp
 
제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document Store
 
MySQL 8 loves JavaScript
MySQL 8 loves JavaScript MySQL 8 loves JavaScript
MySQL 8 loves JavaScript
 
Optimizer percona live_ams2015
Optimizer percona live_ams2015Optimizer percona live_ams2015
Optimizer percona live_ams2015
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
 
MySQL Goes to 8! FOSDEM 2020 Database Track, January 2nd, 2020
MySQL Goes to 8!  FOSDEM 2020 Database Track, January 2nd, 2020MySQL Goes to 8!  FOSDEM 2020 Database Track, January 2nd, 2020
MySQL Goes to 8! FOSDEM 2020 Database Track, January 2nd, 2020
 
OSC Online MySQL Version up
OSC Online MySQL Version upOSC Online MySQL Version up
OSC Online MySQL Version up
 
MySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinMySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The Dolphin
 

More from OracleMySQL

MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)OracleMySQL
 
Solving Performance Problems Using MySQL Enterprise Monitor
Solving Performance Problems Using MySQL Enterprise MonitorSolving Performance Problems Using MySQL Enterprise Monitor
Solving Performance Problems Using MySQL Enterprise MonitorOracleMySQL
 
6 Tips to MySQL Performance Tuning
6 Tips to MySQL Performance Tuning6 Tips to MySQL Performance Tuning
6 Tips to MySQL Performance TuningOracleMySQL
 
MySQL Performance Tuning 101 (Bahasa)
MySQL Performance Tuning 101 (Bahasa)MySQL Performance Tuning 101 (Bahasa)
MySQL Performance Tuning 101 (Bahasa)OracleMySQL
 
Robust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL DataRobust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL DataOracleMySQL
 
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...OracleMySQL
 
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)OracleMySQL
 
Infographic oracle-my sql-cloud
Infographic oracle-my sql-cloudInfographic oracle-my sql-cloud
Infographic oracle-my sql-cloudOracleMySQL
 
MySQL in oracle_public_cloud
MySQL in oracle_public_cloudMySQL in oracle_public_cloud
MySQL in oracle_public_cloudOracleMySQL
 

More from OracleMySQL (9)

MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)MySQL Performance Tuning (In Korean)
MySQL Performance Tuning (In Korean)
 
Solving Performance Problems Using MySQL Enterprise Monitor
Solving Performance Problems Using MySQL Enterprise MonitorSolving Performance Problems Using MySQL Enterprise Monitor
Solving Performance Problems Using MySQL Enterprise Monitor
 
6 Tips to MySQL Performance Tuning
6 Tips to MySQL Performance Tuning6 Tips to MySQL Performance Tuning
6 Tips to MySQL Performance Tuning
 
MySQL Performance Tuning 101 (Bahasa)
MySQL Performance Tuning 101 (Bahasa)MySQL Performance Tuning 101 (Bahasa)
MySQL Performance Tuning 101 (Bahasa)
 
Robust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL DataRobust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL Data
 
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
 
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
 
Infographic oracle-my sql-cloud
Infographic oracle-my sql-cloudInfographic oracle-my sql-cloud
Infographic oracle-my sql-cloud
 
MySQL in oracle_public_cloud
MySQL in oracle_public_cloudMySQL in oracle_public_cloud
MySQL in oracle_public_cloud
 

Recently uploaded

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

What's New MySQL 8.0?

  • 1. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | MySQL Server 8.0 Morgan Tocker MySQL Product Manager (Server) Copyright © 2017, Oracle and/or its affiliates. All rights reserved.
  • 2.
  • 3. Copyright © 2017, 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. 3
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 – Improvements across the board • Replication • InnoDB • Optimizer • Security • Performance Schema • GIS • Triggers • Partitioning • New! SYS Schema • New! JSON • Performance 4 200+ new features In total!
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5 The MySQL 5.7 Story (cont.) JSON Type JSON Functions Virtual Columns GIS Improvements Observability Manageability
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | The MySQL 8.0 Story • Mobile First • Developer Centric • Premium placed on time to Market 6 “Making MySQL Better for Modern Applications”
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | GIS • Geography Support • Spatial Reference Systems (SRS) Support • Standard compliant axis ordering in import/export functions • Helper functions to manipulate and convert data: • st_x(geom, x) • st_y(geom, y) • st_srid(geom, srid) 7
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JSON Functions 8 MySQL 5.7 and 8.0 JSON_ARRAY_APPEND() JSON_ARRAY_INSERT() JSON_ARRAY() JSON_CONTAINS_PATH() JSON_CONTAINS() JSON_DEPTH() JSON_EXTRACT() JSON_INSERT() JSON_KEYS() JSON_LENGTH() JSON_MERGE_[PATCH]() JSON_OBJECT() JSON_QUOTE() JSON_REMOVE() JSON_REPLACE() JSON_SEARCH() JSON_SET() JSON_TYPE() JSON_UNQUOTE() JSON_VALID() JSON_PRETTY() JSON_STORAGE_SIZE() JSON_STORAGE_FREE()
 JSON_MERGE_PRESERVE() JSON_ARRAYAGG() JSON_OBJECTAGG() JSON_TABLE() *labs
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | SELECT * FROM seats, JSON_TABLE(doc, "$.properties.amenities[*]" COLUMNS ( id for ordinality, amenity_type VARCHAR(100) PATH "$.type", distance float PATH '$.distance_in_meters') ) AS amenities WHERE seats.id = 28100 AND amenities.amenity_type IN ('snacks', 'bar') ORDER BY amenities.distance; +------+------------------+------------+ | id | amenity_type | distance | +------+------------------+------------+ | 2 | bar | 100.538 | | 3 | snacks | 136.647 | +------+------------------+------------+ 2 rows in set (0.00 sec) 9 Labs
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | utfmb4 as default character set • Support for the latest Unicode 9.0 • Accent and case sensitive collations • Language specific collations • including Japanese and Russian! 10 MySQL 8.0
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | UTF-8 • UTF-8 is the dominating character set in today’s applications • Requires 1-4 bytes for storing characters • Historically a performance problem The character set for the Web 11 https://en.wikipedia.org/wiki/UTF-8
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL 8.0 vs MySQL 5.7 utf8mb4 12 SELECT DISTINCT_RANGES 0 45000 90000 135000 180000 8 16 64 128 512 1024 OLTP RO 0 10000 20000 30000 40000 8 16 64 128 512 1024 OLTP RW 0 7500 15000 22500 30000 8 16 64 128 512 1024 +300-350% in OLTP RO +176-233% in OLTP RW +1500-1800% in SELECT DISTINCT_RANGES
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL 8.0 utf8mb4 vs MySQL 5.7 utf8mb3 13 SELECT DISTINCT_RANGES 0 45000 90000 135000 180000 8 16 64 128 512 1024 OLTP RO 0 10000 20000 30000 40000 8 16 64 128 512 1024 OLTP RW 0 7500 15000 22500 30000 8 16 64 128 512 1024 +270-340% in OLTP RO +150-200% in OLTP RW +1300-1600% in SELECT DISTINCT_RANGES
  • 14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! UUID and Bit-wise Improvements • Functions to convert UUID to and from binary: – UUID_TO_BIN() – BIN_TO_UUID() – plus IS_UUID() • Bit-wise operations on binary data types • Bit-wise operations on binary data types – Designed with IPv6 in mind: – INET6_ATON(address) & INET6_ATON(network) 14 Feature Request
 from Developers
  • 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | UUID_TO_BIN Optimization 15 Insert Performance 26 26.75 27.5 28.25 29 Optimized Original • Binary format is now smaller and insert-order efficient: 11e678fe53303f87a4778c89a52c4f3b 53303f87-78fe-11e6-a477-8c89a52c4f3bFrom VARCHAR(36) To VARBINARY(16)
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Better Handling of Hot Row Contention 16 SELECT * FROM tickets WHERE id IN (1,2,3,4) AND order_id IS NULL FOR UPDATE NOWAIT; SELECT * FROM tickets WHERE id IN (1,2,3,4) AND order_id IS NULL FOR UPDATE SKIP LOCKED; Error immediately if a row is already locked Non deterministically skip over locked rows
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Common Table Expressions • “With queries” • Both Recursive and Non-Recursive Forms • Simplifies writing complex SQL:
 
 WITH t1 AS (SELECT * FROM tblA WHERE a=‘b’)
 SELECT * FROM t1; 17 Feature Request
 from Developers
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 18 Print 1 to 10 Recursive CTE (Example) a 1 2 3 4 5 6 7 8 9 10 WITH RECURSIVE qn AS
 ( SELECT 1 AS a 
 UNION ALL
 SELECT 1+a FROM qn WHERE a<10
 )
 SELECT * FROM qn;
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Window Functions 19 Improving Support for Analytics Feature Request
 from Developers SELECT name, department_id, salary, SUM(salary)
 OVER (PARTITION BY department_id) AS department_total FROM employee ORDER BY department_id, name;
  • 20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 20 Improved to consider buffer pool fit Optimizer Cost Model Feature Request
 from DBAs SELECT * FROM Country
 WHERE population > 20000000; Model for a table scan: # pages in table * (IO_BLOCK_READ_COST | MEMORY_BLOCK_READ_COST)
 # records * ROW_EVALUATE_COST = 25.4 100% in memory = 29.9 100% on disk Model for a range scan: # records_in_range * (IO_BLOCK_READ_COST | MEMORY_BLOCK_READ_COST)
 # records_in_range * ROW_EVALUATE_COST + # records_in_range * ROW_EVALUATE_COST 
 = 22.5 100% in memory = 60 100% on disk Model accounts for memory fit. For data on disk an IO block read defaults to 1.0. In memory defaults to 0.25. Much larger performance difference for range scan not in memory (good)
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 21 New! Histograms • Track distribution skew of data • Used for operations in the format:
 COLUMN operator CONSTANT • Much lower cost than adding an index Feature Request
 from DBAs
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Descending Indexes CREATE TABLE t1 (
 a INT,
 b INT,
 INDEX a_desc_b_asc (a DESC, b ASC)
 ); 22 For B+tree indexes mysql> EXPLAIN SELECT * FROM t1 ORDER BY a DESC, b ASC; .. +--------------+---------+------+------+----------+-------------+ .. | key | key_len | ref | rows | filtered | Extra | .. +--------------+---------+------+------+----------+-------------+ .. | a_desc_b_asc | 10 | NULL | 10 | 100.00 | Using index | .. +--------------+---------+------+------+----------+-------------+ mysql 8.0> EXPLAIN SELECT * FROM t1 ORDER BY a ASC, b ASC; .. +--------------+---------+------+------+----------+-----------------------------+ .. | key | key_len | ref | rows | filtered | Extra | .. +--------------+---------+------+------+----------+-----------------------------+ .. | a_desc_b_asc | 10 | NULL | 10 | 100.00 | Using index; Using filesort | .. +--------------+---------+------+------+----------+-----------------------------+
  • 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Invisible Indexes • Indexes are “hidden” to the MySQL Optimizer – Not the same as “disabled indexes” – Contents are fully up to date and maintained by DML • Two use cases: – Soft Delete (Recycle Bin) – Staged Rollout 23 Feature Request
 from DBAs
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 24 Example Usage Soft Delete • I don’t think this index is used any more:
 ALTER TABLE Country ALTER INDEX c INVISIBLE; • I need to revert:
 ALTER TABLE Country ALTER INDEX c VISIBLE; • It is now safe to drop:
 ALTER TABLE Country DROP INDEX c;
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Staged Rollout • Adding any new index can change existing execution plans • All change introduces risk of regression
 
 ALTER TABLE Country ADD INDEX c (Continent) INVISIBLE;
 # after some time
 ALTER TABLE Country ALTER INDEX c VISIBLE; 25
  • 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 26 SELECT * FROM information_schema.statistics WHERE is_visible='NO';
 *************************** 1. row ***************************
 TABLE_CATALOG: def
 TABLE_SCHEMA: world
 TABLE_NAME: Country
 NON_UNIQUE: 1
 INDEX_SCHEMA: world
 INDEX_NAME: c
 SEQ_IN_INDEX: 1
 COLUMN_NAME: Continent
 COLLATION: A
 CARDINALITY: 7
 SUB_PART: NULL
 PACKED: NULL
 NULLABLE:
 INDEX_TYPE: BTREE
 COMMENT: disabled
 INDEX_COMMENT:
 IS_VISIBLE: NO
  • 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 27 Evolution from MySQL 5.5 to 8.0 Performance Schema Feature Request
 from DBAs MySQL 8.0 Histograms Indexes Data Locks instrumentation SQL Errors instrumentation Variables Instrumentation Replication Table plugin Improved Defaults
 Digest Query Sample  MySQL 5.7 Memory Instrumentation Prepared Statements Instrumentation Transactions Instrumentation Scalable Memory Allocation Bundled SYS schema Lower Overhead MySQL 5.6 Statement Instrumentation Lower Overhead MySQL 5.5 Event Waits Mutexes Files Threads
  • 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 28 Performance Comparison Query Time 0 10 20 30 40 MySQL 8.0 MySQL 5.7 Over 30x faster! SELECT * FROM sys.session
 1000 active sessions Time in Seconds (Lower is better)
  • 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 29 SELECT * FROM test.no_table; ERROR 1146 (42S02): Table 'test.no_table' doesn't exist SELECT * FROM performance_schema.events_errors_summary_global_by_error
 WHERE sum_error_handled > 0 OR SUM_ERROR_RAISED > 0G *************************** 1. row *************************** ERROR_NUMBER: 1146 ERROR_NAME: ER_NO_SUCH_TABLE SQL_STATE: 42S02 SUM_ERROR_RAISED: 1 SUM_ERROR_HANDLED: 0 FIRST_SEEN: 2016-09-11 20:52:42 LAST_SEEN: 2016-09-11 20:52:42 1 row in set (0.00 sec)
  • 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | query: INSERT INTO `t1` VALUES (...) db: mysqlslap total_latency: 54.43 s exec_count: 58377 lock_latency: 1.70 s .. digest: 4e0c5b796c4052b0da4548fd7cb694be first_seen: 2017-04-16 20:59:16 last_seen: 2017-04-16 21:00:34 latency_distribution: 0us+ 10us+ ############################# 100us+ #################### 1ms+ # 10ms+ 100ms+ 1s+ 10s+ New! Performance Schema Histograms 30 +---------+--------------------------------+-------+ | bucket | visualization | count | +---------+--------------------------------+-------+ | 0us+ | # | 1253 | | 10us+ | ############################## | 43102 | | 100us+ | ################# | 25013 | | 1ms+ | # | 2003 | | 10ms+ | | 325 | | 100ms+ | | 17 | | 1s+ | | 0 | | 10s+ | | 0 | +---------+--------------------------------+-------+ 8 rows in set (0.08 sec) Showing distribution of query time from a run of mysqlslap Generated with a quick CTE over events_statements_histogram_global Feature Request
 from DBAs Available on a per statement digest level. Can quickly aggregate top-N statements with latency distribution.
  • 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Performance Schema Data Locks 31 SELECT thread_id, object_name, index_name, lock_type, lock_mode, lock_data 
 FROM performance_schema.data_locks WHERE object_name = 'seats'; +-----------+-------------+------------+-----------+-----------+-----------+ | thread_id | object_name | index_name | lock_type | lock_mode | lock_data | +-----------+-------------+------------+-----------+-----------+-----------+ | 33 | seats | NULL | TABLE | IX | NULL | | 33 | seats | PRIMARY | RECORD | X | 3, 5 | | 33 | seats | PRIMARY | RECORD | X | 3, 6 | | 33 | seats | PRIMARY | RECORD | X | 4, 5 | | 33 | seats | PRIMARY | RECORD | X | 4, 6 | +-----------+-------------+------------+-----------+-----------+-----------+ 5 rows in set (0.00 sec) Feature Request
 from DBAs
  • 32. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 32 New! Persist Configuration • Persist GLOBAL Server Variables – SET PERSIST max_connections = 500; – SET PERSIST_ONLY innodb_log_file_size = 128*1024*1024; • Examples Include: – Offline_mode – Read_Only • Requires no filesystem access Cloud Friendly
  • 33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Variables Info 33 Find the source of variables changed on your installation SELECT * FROM performance_schema.variables_info WHERE variable_source != 'COMPILED'; +------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+ | VARIABLE_NAME | VARIABLE_SOURCE | VARIABLE_PATH | MIN_VALUE | MAX_VALUE | SET_TIME | SET_USER | SET_HOST | +------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+ | autocommit | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | basedir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | bind_address | EXPLICIT | [..]my.sandbox.cnf | 0 | 0 | 2017-04-16 21:08:11 | | | | character_set_client | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | character_set_results | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | collation_connection | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | datadir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | foreign_key_checks | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | log_error | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | lower_case_table_names | EXPLICIT | [..]my.sandbox.cnf | 0 | 2 | 2017-04-16 21:08:11 | | | | pid_file | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | plugin_dir | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | port | COMMAND_LINE | | 0 | 65535 | 2017-04-16 21:08:11 | | | | socket | COMMAND_LINE | | 0 | 0 | 2017-04-16 21:08:11 | | | | sql_mode | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | sql_notes | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | time_zone | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | | tmpdir | EXPLICIT | [..]my.sandbox.cnf | 0 | 0 | 2017-04-16 21:08:11 | | | | unique_checks | DYNAMIC | | 0 | 0 | 2017-04-16 20:56:53 | msandbox | localhost | +------------------------+-----------------+--------------------+-----------+-----------+---------------------+----------+-----------+ 19 rows in set (0.00 sec)
  • 34. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | New! Transactional Data Dictionary • Crash-safe Database • Common data dictionary for the server and InnoDB • Crash-safe & Atomic DDL • CREATE USER <userlist>, DROP DATABASE with all-or-none semantic • Simplifies replication failure cases 34 • Meta-data locking for FK constraints • FK moved from InnoDB to server layer • Scalable Information Schema • Queries are now executed as set of SQL views on tables • Large performance improvements
  • 35. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 30x
Faster SELECT TABLE_SCHEMA,
 TABLE_NAME, TABLE_TYPE,
 ENGINE, ROW_FORMAT
 FROM information_schema.tables
 WHERE TABLE_SCHEMA LIKE 'db%'; 35 Test Performed with 100 schemas, each with 50 tables.
  • 36. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Defaults • Event Scheduler On • Utf8mb4 Character Set • Performance Schema: Memory, Transactions, MDL • InnoDB: autoinc_lock_mode=2, flush_neighbors=0, max_dirty_pages_pct_lwm=10, max_dirty_pages_pct default=90 • Improvements to back_log auto-calculation • max_error_count=1024 • max_allowed_packet=64M 36 Server-Core
  • 37. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Defaults (cont.) • Binary Log, log-slave-updates on • {master,relay-log}—info-repository = TABLE • transaction-write-set-extraction = XXHASH64 • slave-rows-search-algorithms = ‘INDEX_SCAN,HASH_SCAN’ • expire_logs_days=30 • server-id=1 37 Replication
  • 38. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | InnoDB Dedicated Server • Great for Virtual Machines & Cloud Deployments • Auto scales Log File Size, Buffer Pool Size, Flush Method • Easiest way to enable:
 
 SET PERSIST_ONLY innodb_dedicated_server = TRUE 38
  • 39. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Performance Improvements • Improved Query Consistency • Histograms • Improved Cost Model • Faster Table/Range Scans • FORCE INDEX skips index dives where possible • Expanded Hints Support • JSON Partial Update (Optimizer, Replication) 39 • Parallel Replication • UTF8MB4 • Information Schema • Performance Schema Indexes
  • 40. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | QueriesperSecond 0 40,000 80,000 120,000 160,000 Users 1 2 4 8 16 32 64 128 256 512 MySQL 8.0 Labs MySQL 5.7 MySQL 5.6 MySQL 8.0 Labs: Sysbench Benchmark: IO-bound OLTP RW Updates-only
 Intel(R) Xeon(R) Platinum 8168 CPU 2CPU-sockets, 48cores-HT 2x Intel Optane Oracle Linux 7.3
  • 41. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | QueriesperSecond 0 300,000 600,000 900,000 1,200,000 Users 1 2 4 8 16 32 64 128 256 512 MySQL 8.0 Labs MySQL 5.7 MySQL 5.6 MySQL 8.0 Labs: Sysbench Benchmark: IO-bound OLTP RO Point-Selects
 Intel(R) Xeon(R) Platinum 8168 CPU 2CPU-sockets, 48cores-HT 2x Intel Optane Oracle Linux 7.3 1,000,000+ QPS
  • 42. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL 8.0 RC: Resource Group Example QueriesperSecond 0 40,000 80,000 120,000 160,000 No Resource Group With Resource Group Select Update System Configuration : Oracle Linux 7, Intel(R) Xeon(R) CPU E7-4860 2.27GHz 40 cores-HT (40 Cores Shared) (40 Cores for Select) (10 Cores for Update RG)
  • 43. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • Source code now documented with Doxygen • New Plugin Infrastructure • Improved BLOB Storage • Improved Memcached Interface • InnoDB Auto Increment Persists • Parser Refactoring • Improvements to Temporary Tables • C++11 and Toolchain Improvements • GTID_PURGED always settable • Undo tablespaces now dynamic • In memory storage engine • SQL Roles Support • Encryption for Redo and General Tablespaces • InnoDB Cats lock scheduler algorithm • Improved Parallel Replication • SQL Grouping Function • Optimizer Trace detailed sort statistics • Smaller Package Downloads • Improved usability of cost constant configuration 43 All these features plus…
  • 44. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 44