Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	8.0	
The	World’s	Most	Popular	Open	Source	Database	
Mark	Swarbrick	
Principle	Presales	Consultant	
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.
Copyright	©	2018,	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.
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Agenda	
MySQL	Customers	
MySQL	Innovation	
What’s	New	in	MySQL	8.0	
MySQL	Document	Store	
1	
2	
3	
4	
5	
6	
MySQL	High	Availability	
MySQL	Security	
MySQL	Enterprise	Edition	
MySQL	Cloud	Service	
	
6	
7
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Today	MySQL	Powers	Social
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Today	MySQL	Powers	eCommerce
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Today	MySQL	Powers	SaaS
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Today	MySQL	Powers	FinTech	
	
	
7
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Today	MySQL	Powers	the	Cloud
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Innovation:	5.7	->	8.0	
-  3x	Better	Performance	
-  Replication	Enhancements	
-  Optimizer	Cost	Model	
-  JSON	Support	
-  Improved	Security	
-  Sys	&	Performance	Schema	
-  GIS	
MySQL	5.7	(GA)		
MySQL	InnoDB	Cluster	(GA)	
-  MySQL	Group	Replication	
-  MySQL	Router	
-  MySQL	Shell	
		
MySQL	8.0	
-  Document	Store	
-  Data	Dictionary	
-  Roles	
-  Unicode	
-  CTEs	
-  Window	Functions	
-  Security	
-  Replication	
-  SysSchema	
-  GIS	
	
		
2	Years	in	Development	
400+	Worklogs	
5000+	Bugs	Fixed	
500	New	Tests
24x7	at	Scale		
Mobile	First	
Developer	First	
Data	Driven	
8.0
GA
Relational Databases
Data Integrity
normalization
constraints (foreign keys, ...)
Atomicity, Consistency, Isolation, Durability
ACID compliant
transactions
SQL
powerfull query language
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
Schemaless
no schema design, no normalization, no foreign keys, no data types, ...
very quick initial development
Flexible data structure
embedded arrays or objects
valid solution when natural data can´t be
modeled optimally into a relational model
objects persistence without the use of any ORM - mapping	object-oriented	
JSON
close to frontend
native in JS
easy to learn
NoSQL or Document Store
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
How DBAs see data How Developers see data
{
"GNP" : 249704,
"Name" : "Belgium",
"government" : {
"GovernmentForm" :
"Constitutional Monarchy, Federation",
"HeadOfState" : "Philippe I"
},
"_id" : "BEL",
"IndepYear" : 1830,
"demographics" : {
"Population" : 10239000,
"LifeExpectancy" : 77.8000030517578
},
"geography" : {
"Region" : "Western Europe",
"SurfaceArea" : 30518,
"Continent" : "Europe"
}
}
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
DMBS or NoSQL ?
Why not both ?
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
The MySQL Document Store !
SQL is now optional !
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
A solution for all
34 / 112
Developers:	
[✔]	Schemaless	or/and	Schema	
[✔]	Rapid	Prototyping/Simpler	APIs	
[✔]	Document	Model	
[✔]	Transactions	
	
Operations:	
[✔]	Performance	Management/Visibility	
[✔]	Robust	Replication,	Backup,	Restore	
[✔]	Comprehensive	Tooling	Ecosystem	
[✔]	Simpler	application	schema	upgrades	
Business	Owner:	
[✔]	Don’t	lose	my	data	=		ACID	transactions	
[✔]	Capture	all	my	data	=	Extensible/Schemaless	
[✔]	Products	On	Schedule/Time	to	Market	=	Rapid	Development	
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
#1	New	Feature:	MySQL	Document	Store	
An	easy,	straight	forward	way	to	work	with	JSON	
documents	in	MySQL	
17	
#1		
New	Feature
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		
Document	Oriented	Databases	
•  Schemaless:	No	centralized	database	schema	
–  Data	model	enforcement	and	validation	(if	any)	at	application	layer	
–  Simpler	schema	updates	(no	ALTER	TABLE	penalty)	
•  NoSQL	APIs:	Simpler	programming	interfaces	
–  No	specialized	language	for	queries	and	data	manipulation	
–  Complex	queries	handled	at	application	layer	(no	complex	SELECTs,	JOINs)	
–  Document	in,	document	out,	manipulations	at	client	side	
•  Scalability,	but	some	drawbacks:	
–  Limited	database	features	(no	foreign	keys,	no	transactions,	etc.)	
–  Weak	consistency	guarantees	
18	
Usability	&	Scalability
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		
NoSQL,	MySQL,	Why	not…	
•  Have	both	schema-less	and	schema	in	the	same	technology	stack?	
•  One	that	checks	all	the	boxes	of	all	stakeholders:	
19	
Developers	
✔ Schemaless	or/and	Schema	
✔ Rapid	Prototyping/Simpler	APIs	
✔ Document	Model	
✔ Transactions	
	
Operations	
✔ Performance	Management/Visibility	
✔ Robust	Replication,	Backup,	Restore	
✔ Comprehensive	Tooling	Ecosystem	
✔ Simpler	application	schema	upgrades	
Business	Owner	
✔ Don’t	lose	my	data	=		ACID	transactions	
✔ Capture	all	my	data	=	Extensible/Schemaless	
✔ Products	On	Schedule/Time	to	Market	=	Rapid	Development
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		
	
	
MySQL	Document	Store:	Components	
•  MySQL	X	Plugin	
•  Introduces	X	Protocol	for	relational-	and	
document	operations	
•  Maps	CRUD	operations	to	standard	SQL	
(relational	tables,	JSON	datatype	and	
functions)	
•  X	Protocol	
•  New	MySQL	client	protocol	based	on	top	of	
industry	standard	(Protobuf)	
•  Works	for	both,	CRUD	and	SQL	operations	
•  InnoDB	Cluster	
•  Read-Scaling,	Write-Scaling,	HA	
•  X	DevAPI	
•  New,	modern,	async	developer	API	for	CRUD	
and	SQL	operations	on	top	of	X	Protocol	
•  Introduces	Collections	as	new	Schema	obj.	
•  MySQL	Shell	
•  Offers	interactive	X	DevAPI	mode	for	app	
prototyping	
•  MySQL	Connectors	
•  Support	for	X	DevAPI	for	
•  JavaScript,	Python,	PHP,	Java,	C#,	C++	
20
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		
How	does	the	Document	Store	work?	
Architecture	from	the	Application’s	POV	
21	
Frontend	
CRUD	requests	+	JSON	
Backend	 MySQL	
JSON	
Application	
Document	Store
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		
How	does	the	MySQL	Document	Store	work?	
Architecture	&	Components	
22	
Application	 Connector	 MySQL	X	Plugin	
DevAPI	 Protobuf	/	X	Protocol	/	TCP/IP	 SQL	
InnoDB
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		 23	
Read	Scale-Out	
Async	Replication	+	Auto	Failover	
Write	Scale-Out	
Sharding	
S1	
S2	
S3	
S4	
MySQL	Mission	–	4	Steps	
Timeline	
MySQL	Document	Store	
Relational	&	Document	Model	
MySQL	HA	
Out-Of-Box	HA	
✔	 ✔	
✔
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Shell	
•  Scripting	for	Javascript,	Python,	and	SQL	mode	
•  Supports	MySQL	Standard	and	X	Protocols	
•  Document	and	Relational	Models	
•  CRUD	Document	and	Relational	APIs	via	scripting	
•  Traditional	Table,	JSON,	Tab	Separated	output	results	formats	
•  Both	Interactive	and	Batch	operations	
Interface	for	Development	and	Administration	of	MySQL
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Shell:	What’s	New	
•  Customizable	prompt	
•  Include	context	and	session	information		
•  Custom	font	and	color	support				
•  Persistent	command	line	history		
•  Auto-complete	/	Content	Assistance	
•  Full	Unicode	support	
25
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON	Support	
•  Native	File	Format	
•  Virtual	Columns	
•  20+	Functions	
•  New!	Search	Functions	
•  New!	Aggregations	Functions	
– Query	structured	data	and	semi-structured	JSON	data
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JSON	Functions	
28	
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[_PRESERVE]()	
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_ARRAYAGG()	
JSON_OBJECTAGG()	
JSON_MERGE_PATCH()	
JSON_TABLE()
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
UTF8	/	Unicode
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  Emoji	characters	used	as	input		
•  MySQL	8.0	defaults	to	utf8mb4	
•  Latest	Unicode	9.0	Support	
•  New	collations	based	on	DUCET,	
accent	and	case	sensitive	
collations,	Japanese,	Russian	
MySQL	8.0:	UTF-8	Encoding
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
0	
100,000	
200,000	
300,000	
400,000	
500,000	
600,000	
700,000	
800,000	
900,000	
1,000,000	
1	 2	 4	 8	 16	 32	 64	 128	 256	 512	 1,024	
Queries	per	Second	
Users	
MySQL	8.0	
MySQL	5.7	
MySQL	5.6	
MySQL	8.0:		SysBench	OLTP	Read	Only	(Mixed	-	utf8mb4)	
40%	Faster	than	MySQL	5.7	
Oracle	Confidential	–	
31	
OS	:	Oracle	Linux	7.4	
CPU	:	48cores-HT	Intel	Skylake	2.7Ghz		
(2CPU	sockets,	Intel(R)	Xeon(R)	Platinum	8168	CPU)	
RAM:	256GB		
Storage	:	x2	Intel	Optane	flash	devices	
	(Intel	(R)	Optane	(TM)	SSD	P4800X	Series)
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  Transactional	(InnoDB)	Data	Dictionary	
•  Persistent	runtime	configuration	changes	(SET	PERSIST)	
•  Auto-increment	counter	value	will	now	persist	across	server	restarts!	
•  Indexing	of	PS	tables	
•  SQL	roles	(collection	of	privileges)	
•  MySQL	privilege	tables	are	now	InnoDB	
•  INVISIBLE	indexes	
•  Common	Table	Expressions	
•  Windows	Functions	
What’s	new	
32
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  Increased	Reliability	
•  Built	on	InnoDB	
– No	FRM	files	
– No	DB.OPT	files	
– No	TRG	files	
– No	TRN	files	
– No	PAR	files	
– MyISAM	not	required	
•  Atomic	DDL	
– Better	Replication	
– Simplifies	server	edge	cases	
•  MDL	for	Foreign	Keys	
•  Flexible	Metadata	API	
– Easier	path	to	adding	new	features	
•  Better	cross-platform	experience	
– No	dependencies	on	filesystem	
semantics	
33	
MySQL	8.0:	Native	Data	Dictionary
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	8.0:	Cloud	Friendly	
•  New	variable	innodb_dedicated_server	
– according	to	the	amount	of	memory	detected	on	the	server,	automatically	configure	
innodb_buffer_pool_size,	innodb_log_file_size,	innodb_flush_method	
•  Persistent	runtime	configuration	changes	
– SET	PERSIST	variable_name	=	value;	
– Any	GLOBAL	DYNAMIC	configuration	variable	can	be	modified	
– 	the	settings	will	be	persisted	to	a	file	named	mysqld-auto.cnf	(JSON	format)	
– New	table	performance_schema.variables_info	
34
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Better	Handing	of	Hot	Rows	
•  Common	problem:	
– Hot	row	contention,	multiple	worker	threads	accessing	the	same	rows	
•  Solution	1:	
– Only	read	rows	that	are	not	locked	
– InnoDB	skips	a	locked	row,	and	the	next	one	goes	to	the	result	set	
•  Example:	
– Booking	system:	Skip	orders	that	are	pending	
SELECT	...	FOR	UPDATE	SKIP	LOCKED	
35	
START TRANSACTION;
SELECT * FROM seats WHERE seat_no BETWEEN 2 AND 3 AND booked = 'NO‘
FOR UPDATE SKIP LOCKED;
	
	
	
	
	
	
	
	
Feature	Request	
from	Developers
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Better	Handing	of	Hot	Rows	(cont.)	
•  Common	problem:	
– Hot	row	contention,	multiple	worker	threads	accessing	the	same	rows	
•  Solution	2:	
– If	any	of	the	rows	are	already	locked,	the	statement	should	fail	immediately	
– Without	NOWAIT,	have	to	wait	for	innodb_lock_wait_timeout	(default:	50	sec)	while	
trying	to	acquire	lock	
SELECT…	FOR	UPDATE	NOWAIT	
	
36	
START TRANSACTION;
SELECT * FROM seats WHERE seat_no BETWEEN 2 AND 3 AND booked = 'NO‘
FOR UPDATE NOWAIT;
ERROR 3572 (HY000): Statement aborted because lock(s) could not be acquired …	
	
	
	
	
	
	
	
Feature	Request	
from	Developers
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	8.0:	Windows	Functions	
•  Window	functions	gather	results	into	a	set	of	rows,		
returning	a	single	aggregated	value	for	each	of	the	rows		
in	the	result	set.	Gives	you	a	very	practical	tool	for		
estimations	and	rankings.	
•  Perform	some	calculation	on	a	set	of	rows	
•  Over(partition	by	...)	
•  Simplifies	writing	complex	SQL:	
•  OVER(),	OTHER(partition)	
37	
	
	
	
	
	
	
	
Feature	Request	
from	Developers
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	8.0:	Windows	Functions	
38	
	
	
	
	
	
	
	
Feature	Request	
from	Developers	
•  Use	the	usual	aggregate	functions	or...	
•  RANK(),	DENSE_RANK(),	PERCENT_RANK()	
•  CUME_DIST()	
•  NTILE()	
•  ROW_NUMBER()	
•  FIRST_VALUE(),	LAST_VALUE(),	NTH_VALUE()	
•  LEAD(),	LAG()
Copyright	©	2015,	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()	&	INET6_NTOA()	
– No	longer	truncation	beyond	64	bits	
39	
	
	
	
	
	
	
	
Feature	Request	
from	Developers
Copyright	©	2015,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 40	
• 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	©	2015,	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	
41	
+---------+--------------------------------+-------+
| 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	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	8.0:	Boosts	Developer	Productivity	
•  New!	CTEs	and	Recursive	CTEs	
•  New!	Window	Functions	
•  New!	SKIP	LOCKED	and	NOWAIT	
•  UUIDs	and	Bitwise	Functions	
42
Copyright	©	2018,	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	
43	
	
	
	
	
	
	
	
Feature	Request	
from	DBAs
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	5.7	MySQL	5.6	MySQL	5.5		
Confidential	–	Oracle	Internal/Restricted/Highly	Restricted	
MySQL	Performance	Schema	
Evolution	form	5.5	to	8.0	
44	
•  Event	Waits	
•  Mutexes	
•  Files	
•  Threads	
MySQL	8.0	
•  Statement	
Instrumentation	
•  Lower	Overhead	
•  Memory	
Instrumentation	
•  Prepared	Statements	
Instrumentation	
•  Transactions	
Instrumentation	
•  Scalable	Memory	
Allocation	
•  Bundled	SYS	schema	
•  Lower	Overhead	
•  Histograms	
•  Indexes	
•  Data	Locks	
instrumentation	
•  SQL	Errors	
instrumentation	
•  Variables	
Instrumentation	
•  Table	plugin	
•  Improved	Defaults
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
New!	Performance	Improvements	
•  Improved	Query	Consistency	
•  Histograms	
•  Improved	Cost	Model	
•  Faster	Table/Range	Scans	
45	
•  Parallel	Replication	
•  UTF8MB4	
•  Information	Schema	
•  Performance	Schema	Indexes
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
0	
50,000	
100,000	
150,000	
200,000	
250,000	
300,000	
1	 2	 4	 8	 16	 32	 64	 128	 256	 512	 1,024	
Queries	per	Second	
Users	
MySQL	8.0	
MySQL	5.7	
MySQL	5.6	
MySQL	8.0:		SysBench	Read	Write		(update	nokey)	
2x	Faster	than	MySQL	5.7	
Oracle	Confidential	–	
46	
OS	:	Oracle	Linux	7.4	
CPU	:	48cores-HT	Intel	Skylake	2.7Ghz		
(2CPU	sockets,	Intel(R)	Xeon(R)	Platinum	8168	CPU)	
RAM:	256GB		
Storage	:	x2	Intel	Optane	flash	devices	
	(Intel	(R)	Optane	(TM)	SSD	P4800X	Series)
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	8.0:		SysBench	IO	Bound	Read	Only	(Point	Selects)	
2x	Faster	than	MySQL	5.7	
Oracle	Confidential	–	
47	
0	
200,000	
400,000	
600,000	
800,000	
1,000,000	
1,200,000	
1	 2	 4	 8	 16	 32	 64	 128	 256	 512	
Queries	per	Second	
Users	
MySQL	8.0	
MySQL	5.7	
MySQL	5.6	
OS	:	Oracle	Linux	7.4	
CPU	:	48cores-HT	Intel	Skylake	2.7Ghz		
(2CPU	sockets,	Intel(R)	Xeon(R)	Platinum	8168	CPU)	
RAM:	256GB		
Storage	:	x2	Intel	Optane	flash	devices	
	(Intel	(R)	Optane	(TM)	SSD	P4800X	Series)
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	8.0:	Resource	Group	Example	
0	
20,000	
40,000	
60,000	
80,000	
100,000	
120,000	
140,000	
160,000	
No	Resource	Group	 With	Resource	Group	
Queries	per	Second	
	
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	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Security
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
•  Improving	MySQL	Access	Controls	
•  Easier	to	manage	user	and	applications	rights	
•  As	standards	compliant	as	practically	possible	
•  Multiple	default	roles	
•  Export	the	role	graph	in	GraphML	
50	
Directly	
Indirectly	
Set	Role(s)	
Default	Role(s)	
Set	of	
ACLS	
Set	of	
ACLS	
New!	MySQL	8.0:	Roles	
	
	
	
	
	
	
	
Feature	Request	
from	DBAs
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
New!	MySQL	8.0:	Dynamic	Privileges	
Provides	finer	grained	administrative	level	access	controls	
•  Too	often	super	is	required		for	tasks	when	less	privilege	is	really	needed	
– Support	concept	of	“least	privilege”		
•  Needed	to	allow	adding	administrative	access	controls		
– Now	can	come	with	new	components	
– Examples	
•  Replication	
•  HA		
•  Backup	
•  Give	us	your	ideas	
51
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Password	Features	
•  New!	Password	history	-	provides	DBAs	more	password	management	
– 	Require	new	passwords	not	reuse	old	ones	-	By	number	of	changes	and/or	time.		
– Establish	password-reuse	policy	globally	as	well	as	on	a	per-account	basis.	
•  New!	SHA2	with	Caching	
– Strong	and	Fast	
– Strong	-	SHA-256	password	hashing	(many	rounds,	seeds,	…)		
– Fast	-	Caching	
•  Greatly	reduces	latency		
•  New!	Supports	for	more	connection	protocols	
•  New!	Seamless	RSA	password-exchange	capabilities	(No	linking	OpenSSL)		
	
52
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	8.0:	File	Encryption	
•  New!	AES	256	encryption	of	UNDO	and	REDO	Logs	
•  Super	Simple	to	manage	-	Set	
– innodb_undo_log_encrypt=ON/OFF		
– innodb_redo_log_encrypt=ON/OFF	
•  And	
– ON	-	Pages	written	after	setting	are	encrypted	
– OFF	-	Pages	written	after	setting	are	not.	
	
53
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	8.0:	Upgrade	Checker	
54	
•  Quick	and	Easy	MySQL	Shell	Utility	
– JavaScript	
– Python	
•  Identifies	Issues	Based	on	Severity	
– No	Issues	
– Potential	Errors	
– Errors	that	must	be	fixed	before	Upgrading	
•  Recommends	Fixes		
– Schema,	Configuration		
– Data	on	Server,	etc.
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Enterprise	Edition
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Management	Tools	Advanced	Features	 Support	
• Scalability	
• High	Availability	
• Authentication	
• Audit	
• Encryption	+	TDE	
• Firewall	
• Monitoring	
• Backup	
• Development	
• Administration	
• Migration	
• Technical	Support	
• Consultative	Support	
• Oracle	Certifications	
MySQL	Enterprise	Edition	
56
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
	
	
	
Oracle	Enterprise	Manager	for	MySQL	
Performance	
•  Availability	monitoring	
•  Performance	monitoring	
•  Configuration	monitoring	
•  All	available	metrics	collected	
•  Custom	threshold	Reports	
•  MySQL	auto-detection		
•  MySQL	8.0	Support??	
57
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Enterprise	Monitor	4.0	
•  New	and	improved	User	Interface	
– Modern	look-and-feel	
– Easier	navigation	
– Better	performance	and	scale	
•  Full	NDB	Cluster	support	
– Auto	discovery	
– Visual	topology		
– Memory	and	CPU	reports	
– New	advisors	
•  User	statistics	report	
58
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Enterprise	Monitor:	Replication	Dashboard	
•  Master/Slave	and	Group	Replication	
•  Auto-discovers	replication	topology	
– High	level	overviews	of	all	instances	
– User	centric	views	on	individual	sets	
•  Performance	monitoring	
•  Replication	advisors	
•  Best	practice	replication	advice	
"I	use	the	MySQL	Enterprise	Monitor	
every	day	to	monitor	and	keep	tabs	on	
our	MySQL	databases.	Quick	one	stop	
shopping	for	keeping	tabs	on	them.”	
	
- Wes	Homer,		
Sr	System	and	Network	Administrator		
59
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Enterprise	Transparent	Data	Encryption	
•  Improves	Security	
– Added	Layer	enforces	access	controls	
– Simple	to	use	and	manage	
•  Meets	Security	and	Regulatory	Requirements	
– Fit	for	cases	where	encryption	is	required	
– Healthcare,	FiServ,	Government,	etc.	
•  Secures	and	Manages	Keys	
– Supports	Standard	KMIP	1.2	protocols	
– Supports	Oracle	Key	Vault	and	other	Key	Stores	
60
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Enterprise	Audit	
•  Out-of-the-box	logging	of	connections,	logins,	and	query	
•  User	defined	policies	for	filtering,	and	log	rotation	
•  Dynamically	enabled,	disabled:	no	server	restart	
•  XML-based	audit	stream	per	Oracle	Audit	Vault	spec	
•  New!	JSON	Output	Option	
•  New!	Compression	
•  New!	Encryption	
•  New!	Secure	SQL	Access	to	Audit	Data	
61	
Adds	regulatory	compliance	to	
MySQL	applications		
(HIPAA,	Sarbanes-Oxley,	PCI,	etc.)
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Enterprise	Authentication	
•  PAM	(Pluggable	Authentication	Modules)	
– Access	external	authentication	methods	
– Standard	interface		
•  Linux	PAM	
•  New!	Native	LDAP	–	Username/Password	or	SASL	
– Proxied	and	non-proxied	users	
•  	Windows	
– Access	native	Windows	services	
– Authenticate	users	already	logged	into	Windows		
•  Typically	using	Windows	Active	Directory	
Integrates	MySQL	with	existing	
security	infrastructures	and	SOPs
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
MySQL	Enterprise	Firewall	
•  Real	Time	Protection	
–  Queries	checked	against	White	List	and	Custom	Rules	
•  Blocks	SQL	Injection	Attacks	
–  Block	Out	of	Policy	Transactions	
•  Intrusion	Detection	
–  Detect	and	Alert	on	Out	of	Policy	Transactions	
•  Automated	White	List		
–  Learning	mode	for	creation	of	approved	list	of	SQL	command	patterns	on	a	per	user	basis	
•  New!	Custom	Rules	using	JSON	definition	
•  Transparent	
–  No	changes	to	application	required	
63	
MySQL		Enterprise	Firewall	monitoring

MySQL 8