SlideShare uma empresa Scribd logo
1 de 130
Baixar para ler offline
1 / 130
2 / 130
MySQL 8.0
a Document Store with all the benefits of a transactional RDBMS
 
 
 
Frédéric Descamps - MySQL Community Manager - Oracle
3 / 130
 
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purpose only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied up in
making purchasing decisions. The development, release and timing of any features or
functionality described for Oracle´s product remains at the sole discretion of Oracle.
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
4 / 130
about me - http://about.me/lefred
Who am I ?
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
5 / 130
Frédéric Descamps
@lefred
MySQL Evangelist
Hacking MySQL since 3.23
devops believer
living in Belgium 🇧🇪
http://lefred.be
 
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
6 / 130
RDBMS & MySQL
Relational Databases
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
7 / 130
Relational Databases
Data Integrity
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
8 / 130
Relational Databases
Data Integrity
normalization
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
9 / 130
Relational Databases
Data Integrity
normalization
constraints (foreign keys, ...)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
10 / 130
Relational Databases
Data Integrity
normalization
constraints (foreign keys, ...)
Atomicity, Consistency, Isolation, Durability
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
11 / 130
Relational Databases
Data Integrity
normalization
constraints (foreign keys, ...)
Atomicity, Consistency, Isolation, Durability
ACID compliant
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
12 / 130
Relational Databases
Data Integrity
normalization
constraints (foreign keys, ...)
Atomicity, Consistency, Isolation, Durability
ACID compliant
transactions
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
13 / 130
Relational Databases
Data Integrity
normalization
constraints (foreign keys, ...)
Atomicity, Consistency, Isolation, Durability
ACID compliant
transactions
SQL
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
14 / 130
Relational Databases
Data Integrity
normalization
constraints (foreign keys, ...)
Atomicity, Consistency, Isolation, Durability
ACID compliant
transactions
SQL
powerful query language
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
15 / 130
NoSQL & MySQL
NoSQL Databases
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
16 / 130
NoSQL or Document Store
Schemaless
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
17 / 130
NoSQL or Document Store
Schemaless
no schema design, no normalization, no foreign keys, no data types, ...
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
18 / 130
NoSQL or Document Store
Schemaless
no schema design, no normalization, no foreign keys, no data types, ...
very quick initial development
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
19 / 130
NoSQL or Document Store
Schemaless
no schema design, no normalization, no foreign keys, no data types, ...
very quick initial development
Flexible data structure
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
20 / 130
NoSQL or Document Store
Schemaless
no schema design, no normalization, no foreign keys, no data types, ...
very quick initial development
Flexible data structure
embedded arrays or objects
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
21 / 130
NoSQL or Document Store
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 modelized optimaly into a relational
model
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
22 / 130
NoSQL or Document Store
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 modelized optimaly into a relational
model
objects persistance without the use of any ORM - mapping object-oriented
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
23 / 130
NoSQL or Document Store
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 modelized optimaly into a relational
model
objects persistance without the use of any ORM - mapping object-oriented
JSON
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
24 / 130
NoSQL or Document Store
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 modelized optimaly into a relational
model
objects persistance without the use of any ORM - mapping object-oriented
JSON
close to frontend
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
25 / 130
NoSQL or Document Store
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 modelized optimaly into a relational
model
objects persistance without the use of any ORM - mapping object-oriented
JSON
close to frontend
native in JS
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
26 / 130
NoSQL or Document Store
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 modelized optimaly into a relational
model
objects persistance without the use of any ORM - mapping object-oriented
JSON
close to frontend
native in JS
easy to learn
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
27 / 130
How DBAs see data
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
28 / 130
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.
29 / 130
What if there was a way to provide both SQL
and NoSQL on one stable platform that has
proven stability on well know technology with
a large Community and a diverse ecosystem ?
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
30 / 130
DBMS or NoSQL ?
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
31 / 130
DBMS or NoSQL ?
Why not both ?
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
32 / 130
The MySQL Document Store !
SQL is now optional !
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
33 / 130
SQL is now optional !
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
34 / 130
Developers:
[x] schemaless
[x] rapid prototying/simpler APIs
[x] document model
[x] transactions
Operations:
[x] performance
management/visibility
[x] robust replication, backup,
restore
[x] comprehensive tooling
ecosystem
[x] simpler application schema
upgrades
Business Owner:
[x] don't lose my data == ACID trx
[x] capture all my data =
extensible/schemaless
[x] product on schedule/time to
market = rapid developement
A solution for all
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
35 / 130
MySQL Document Store
the Solution
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
36 / 130
Built on
the MySQL
JSON Data
type and
Proven
MySQL
Server
Technology
Provides a schema flexible JSON Document Store
No SQL required
No need to define all possible attributes, tables, etc.
Uses new X DevAPI
Can leverage generated column to extract JSON values
into materialized columns that can be indexed for fast
SQL searches.
Document can be ~1GB
It's a column in a row of a table
It cannot exceed max_allowed_packet
Allows use of modern programming styles
No more embedded strings of SQL in your code
Easy to read
Also works with relational Tables
Proven MySQL Technology
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
37 / 130
X DevAPI Connectors for
C++, Java, .Net, Node.js, Python, PHP
working with Communities to help them supporting
it too
New MySQL Shell
Command Completion
Python, JavaScrips & SQL modes
Admin functions
New Util object
A new high-level session concept that can scale from
single MySQL Server to a multiple server environment
Non-blocking, asynchronous calls follow common
language patterns
Supports CRUD operations
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
38 / 130
X DevAPI
plenty of
sessions
during
Oracle
Code ONE
Developing Modern Applications with the MySQL
Document Store and NodeJS [HOL1706], Tue Oct 23,
11:15
Connector/J Beyond JDBC: The X DevAPI for Java and
MySQL as a Document Store [DEV6233], Tue Oct 23,
12:30
Develop Python Applications with MySQL
Connector/Python [DEV5957], Wed Oct 24, 9.00
Develop PHP Applivations with MySQL X Dev API
[DEV5981] - Wed Oct 24, 10.30
Python and the MySQL Document Store [DEV5959], Wed
Oct 24, 3:15pm
Node.js and the MySQL Document Store [DEV5986], Wed
Oct 24, 1.30pm
MySQL Connector/Node.js and X DevAPI [DEV5985], Thu
Oct 25, 10.00
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
39 / 130
Starting using MySQL DS in few minutes
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
00:05
40 / 130
MySQL Shell Info
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
00:05
41 / 130
Migration from MongoDB to MySQL DS
For this example, I will use the well known restaurants collection:
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
42 / 130
Migration from MongoDB to MySQL DS
For this example, I will use the well known restaurants collection:
We need to dump the data to a file and we will use MySQL Shell with the Python
interpreter to load the data.
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
43 / 130
Dump and load using MySQL Shell & Python
The following example is inspired by @datacharmer's work:
https://www.slideshare.net/datacharmer/mysql-documentstore
 
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
44 / 130
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
00:05
45 / 130
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
46 / 130
Even better since MySQL Shell 8.0.13
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
00:05
47 / 130
Let´s query
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
48 / 130
Let´s query
That´s too much records to show it here... let´s limit it
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
49 / 130
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
50 / 130
Some more examples
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
51 / 130
Some more examples
Let´s add a selection criteria:
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
52 / 130
Using IN...
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
53 / 130
Syntax slightly different than MongoDB
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
54 / 130
Syntax slightly different than MongoDB
> db.restaurants. nd({"cuisine": "French",
"borough": { $not: /^Manhattan/} },
{"_id":0, "name": 1,"cuisine": 1, "borough": 1}).limit(2)
{ "borough" : "Queens", "cuisine" : "French",
"name" : "La Baraka Restaurant" }
{ "borough" : "Queens", "cuisine" : "French",
"name" : "Air France Lounge" }
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
55 / 130
CRUD operations
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
56 / 130
CRUD operations for collections
Add a document
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
57 / 130
CRUD operations for collections
Add a document
collection.add({ name: 'fred', age: 42 })
.add({ name: 'dave', age: 23 })
.execute()
collection.add([
{ name: 'dimo', age: 50 },
{ name: 'kenny', age: 25 }
]).execute()
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
58 / 130
CRUD operations for collections
Modify a document
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
59 / 130
CRUD operations for collections
Modify a document
collection.modify('name = :name')
.bind('name', 'fred')
.set('age', 43)
.sort('name ASC')
.limit(1)
.execute()
collection.modify('name = :name')
.bind('name', 'fred')
.patch({ age: 43, active: false })
.sort('name DESC')
.limit(1)
.execute()
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
60 / 130
CRUD operations for collections
Remove a document
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
61 / 130
CRUD operations for collections
Remove a document
collection.remove('name = :name')
.bind('name', 'fred')
.sort('age ASC')
.limit(1)
.execute()
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
62 / 130
MySQL Document Store Objects Summary
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
63 / 130
Document Store Full ACID !
It relies on the proven MySQL InnoDB´s strength & robustness:
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
64 / 130
Document Store Full ACID !
It relies on the proven MySQL InnoDB´s strength & robustness:
innodb_ ush_log_at_trx_commit = 1
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
65 / 130
Document Store Full ACID !
It relies on the proven MySQL InnoDB´s strength & robustness:
innodb_ ush_log_at_trx_commit = 1
innodb_doublewrite = ON
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
66 / 130
Document Store Full ACID !
It relies on the proven MySQL InnoDB´s strength & robustness:
innodb_ ush_log_at_trx_commit = 1
innodb_doublewrite = ON
sync_binlog = 1
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
67 / 130
Document Store Full ACID !
It relies on the proven MySQL InnoDB´s strength & robustness:
innodb_ ush_log_at_trx_commit = 1
innodb_doublewrite = ON
sync_binlog = 1
transaction_isolation = REPEATABLE-READ|READ-
COMMITTED|...
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
68 / 130
Document Store Full ACID !
It relies on the proven MySQL InnoDB´s strength & robustness:
innodb_ ush_log_at_trx_commit = 1
innodb_doublewrite = ON
sync_binlog = 1
transaction_isolation = REPEATABLE-READ|READ-
COMMITTED|...
We do care about your data !
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
69 / 130
MySQL DS Full ACID - Transactions support
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
00:05
70 / 130
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
71 / 130
what about my old SQL ?
The hidden part of the iceberg
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
72 / 130
JSON datatype is behind the scene
native datatype (since 5.7.8)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
73 / 130
JSON datatype is behind the scene
native datatype (since 5.7.8)
JSON values are stored in MySQL tables using UTF8MB4
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
74 / 130
JSON datatype is behind the scene
native datatype (since 5.7.8)
JSON values are stored in MySQL tables using UTF8MB4
Conversion from "native" SQL types to JSON values
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
75 / 130
JSON datatype is behind the scene
native datatype (since 5.7.8)
JSON values are stored in MySQL tables using UTF8MB4
Conversion from "native" SQL types to JSON values
JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,
JSON_TABLES, ...)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
76 / 130
JSON datatype is behind the scene
native datatype (since 5.7.8)
JSON values are stored in MySQL tables using UTF8MB4
Conversion from "native" SQL types to JSON values
JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,
JSON_TABLES, ...)
Generated/virtual columns
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
77 / 130
JSON datatype is behind the scene
native datatype (since 5.7.8)
JSON values are stored in MySQL tables using UTF8MB4
Conversion from "native" SQL types to JSON values
JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,
JSON_TABLES, ...)
Generated/virtual columns
Indexing JSON data
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
78 / 130
JSON datatype is behind the scene
native datatype (since 5.7.8)
JSON values are stored in MySQL tables using UTF8MB4
Conversion from "native" SQL types to JSON values
JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,
JSON_TABLES, ...)
Generated/virtual columns
Indexing JSON data
Foreign Keys to JSON data
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
79 / 130
JSON datatype is behind the scene
native datatype (since 5.7.8)
JSON values are stored in MySQL tables using UTF8MB4
Conversion from "native" SQL types to JSON values
JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH,
JSON_TABLES, ...)
Generated/virtual columns
Indexing JSON data
Foreign Keys to JSON data
SQL Views to JSON data
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
80 / 130
How does the MySQL Document Store work ?
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
81 / 130
What does a collection look like on the server ?
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
82 / 130
_id Every document has a unique identifier called the document
ID, which can be thought of as the equivalent of a table´s
primary key. The document ID value can be manually assigned
when adding a document. If no value is assigned, a document
ID is generated and assigned to the document automatically !
Use getDocumentId() or getDocumentIds() to
get _ids(s)
   
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
83 / 130
Mapping to SQL examples
createCollection('mycollection')
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
84 / 130
Mapping to SQL examples
createCollection('mycollection')
CREATE TABLE `test`.`mycoll` (
doc JSON,
_id VARCHAR(32)
GENERATED ALWAYS AS (doc->>'$._id') STORED
PRIMARY KEY
) CHARSET utf8mb4;
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
85 / 130
Mapping to SQL examples
createCollection('mycollection')
CREATE TABLE `test`.`mycoll` (
doc JSON,
_id VARCHAR(32)
GENERATED ALWAYS AS (doc->>'$._id') STORED
PRIMARY KEY
) CHARSET utf8mb4;
mycollection.add({'test': 1234})
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
86 / 130
Mapping to SQL examples
createCollection('mycollection')
CREATE TABLE `test`.`mycoll` (
doc JSON,
_id VARCHAR(32)
GENERATED ALWAYS AS (doc->>'$._id') STORED
PRIMARY KEY
) CHARSET utf8mb4;
mycollection.add({'test': 1234})
INSERT INTO `test`.`mycoll` (doc)
VALUES (
JSON_OBJECT('_id','663807fe367ee6114e0e5458bdac28bf',
'test',1234)
);
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
87 / 130
Mapping to SQL examples (2)
mycollection.find("test > 100")
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
88 / 130
Mapping to SQL examples (2)
mycollection.find("test > 100")
SELECT doc
FROM `test`.`mycoll`
WHERE (JSON_EXTRACT(doc,'$.test') > 100);
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
89 / 130
SQL and JSON Example
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
90 / 130
SQL and JSON Example
same as:
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
91 / 130
SQL and JSON Example
same as:
we can use it in SQL:
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
92 / 130
SQL and JSON Example (2): validation
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
93 / 130
SQL and JSON Example (2): validation
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
94 / 130
SQL and JSON Example (2): validation
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
95 / 130
SQL and JSON Example (3): explain
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
96 / 130
SQL and JSON Example (3): explain
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
97 / 130
SQL and JSON Example (4): add index
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
98 / 130
SQL and JSON Example (4): add index
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
99 / 130
Indexes in Document Store
It's also possible to create indexes without using SQL syntax:
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
100 / 130
Indexes in Document Store
It's also possible to create indexes without using SQL syntax:
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
101 / 130
SQL and JSON Example (5): arrays
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
102 / 130
SQL and JSON Example (5): arrays
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
103 / 130
SQL and JSON Example (5): arrays
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
104 / 130
SQL and JSON Example (5): arrays
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
105 / 130
NoSQL as SQL
JSON_TABLE
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
106 / 130
NoSQL as SQL (2)
JSON_TABLE
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
107 / 130
NoSQL as SQL - aggregation
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
108 / 130
Challenge: list the best restaurant of each type
of food and show the top 10, with the best one
first !
 
don't forget that all these restaurants are just JSON documents
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
109 / 130
NoSQL as SQL - aggregation (2)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
110 / 130
NoSQL as SQL - aggregation (2)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
111 / 130
NoSQL as SQL - aggregation (2)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
112 / 130
SQL and NoSQL - JOINS
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
113 / 130
SQL and NoSQL - JOINS
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
114 / 130
SQL and NoSQL - JOINS
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
115 / 130
SQL and NoSQL - JOINS (2)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
116 / 130
SQL and NoSQL - JOINS (2)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
117 / 130
SQL and NoSQL - JOINS (2)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
118 / 130
SQL and NoSQL - and back to JSON Document
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
119 / 130
NoSQL or SQL
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
120 / 130
MySQL Shell is for DBAs and Developers
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
00:05
121 / 130
MySQL Shell is for DBAs and Developers (2)
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
00:05
122 / 130
Tuesday
HOL1706 - Developing Modern
Applications with the MySQL
Document Store and Node.js
DEV6233 - Connector/J Beyond
JDBC: The X DevAPI for Java and
MySQL as a Document Store
Wednesday
DEV5957 - Develop Python
Application with MySQL
Connector/Python
DEV5981 - Develop PHP
Applications with MySQL X DevAPI
DEV5986 - Node.js and the MySQL
Document Store
DEV5959 - Python and the MySQL
Document Store
Thursday
DEV5985 - MySQL
Connector/Node.js and the X
DevAPI
More at the conference:
catch up on yesterday's sessions
PRO3056 - Introduction to the MySQL Document Store
HOL1703 - A Practical Introduction to the MySQL Document Store
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
123 / 130
what do I gain ?
Conclusion
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
124 / 130
schemaless
flexible data structure
easy to start (CRUD)
Conclusion
This is the best of the two worlds in one product !
Data integrity
ACID Compliant
Transactions
SQL
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
125 / 130
126 / 130
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
127 / 130
http://lefred.be/content/top-10-reasons-for-
nosql-with-mysql/
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
128 / 130
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
129 / 130
Thank you !
Any Questions ?
share your 💕 for MySQL on social media using @mysql #MySQL8isGreat
#OOW18
Copyright @ 2018 Oracle and/or its affiliates. All rights reserved.
130 / 130

Mais conteúdo relacionado

Mais procurados

MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...Frederic Descamps
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterFrederic Descamps
 
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabMySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabFrederic Descamps
 
MySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellMySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellFrederic Descamps
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellFrederic Descamps
 
pre-FOSDEM MySQL day, February 2018 - MySQL Document Store
pre-FOSDEM MySQL day, February 2018 - MySQL Document Storepre-FOSDEM MySQL day, February 2018 - MySQL Document Store
pre-FOSDEM MySQL day, February 2018 - MySQL Document StoreFrederic Descamps
 
MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!Frederic Descamps
 
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...Frederic Descamps
 
MySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best PracticesMySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best PracticesFrederic Descamps
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterFrederic Descamps
 
MySQL 8.0 Document Store - how to mix NoSQL & SQL in MySQL 8.0
MySQL 8.0 Document Store - how to mix NoSQL & SQL in MySQL 8.0MySQL 8.0 Document Store - how to mix NoSQL & SQL in MySQL 8.0
MySQL 8.0 Document Store - how to mix NoSQL & SQL in MySQL 8.0Frederic Descamps
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsFrederic Descamps
 
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLOracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLFrederic Descamps
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialFrederic Descamps
 
Python and MySQL 8.0 Document Store
Python and MySQL 8.0 Document StorePython and MySQL 8.0 Document Store
Python and MySQL 8.0 Document StoreFrederic Descamps
 
MySQL Shell - the best DBA tool ?
MySQL Shell - the best DBA tool ? MySQL Shell - the best DBA tool ?
MySQL Shell - the best DBA tool ? Frederic Descamps
 
High Availability in MySQL 8 using InnoDB Cluster
High Availability in MySQL 8 using InnoDB ClusterHigh Availability in MySQL 8 using InnoDB Cluster
High Availability in MySQL 8 using InnoDB ClusterSven Sandberg
 
MySQL Shell : the best DBA tool ?
MySQL Shell : the best DBA tool ?MySQL Shell : the best DBA tool ?
MySQL Shell : the best DBA tool ?Frederic Descamps
 
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDSMySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDSFrederic Descamps
 
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20Frederic Descamps
 

Mais procurados (20)

MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabMySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
 
MySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellMySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a Nutshell
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL Shell
 
pre-FOSDEM MySQL day, February 2018 - MySQL Document Store
pre-FOSDEM MySQL day, February 2018 - MySQL Document Storepre-FOSDEM MySQL day, February 2018 - MySQL Document Store
pre-FOSDEM MySQL day, February 2018 - MySQL Document Store
 
MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!
 
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
 
MySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best PracticesMySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best Practices
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
MySQL 8.0 Document Store - how to mix NoSQL & SQL in MySQL 8.0
MySQL 8.0 Document Store - how to mix NoSQL & SQL in MySQL 8.0MySQL 8.0 Document Store - how to mix NoSQL & SQL in MySQL 8.0
MySQL 8.0 Document Store - how to mix NoSQL & SQL in MySQL 8.0
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & Operations
 
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLOracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
 
Python and MySQL 8.0 Document Store
Python and MySQL 8.0 Document StorePython and MySQL 8.0 Document Store
Python and MySQL 8.0 Document Store
 
MySQL Shell - the best DBA tool ?
MySQL Shell - the best DBA tool ? MySQL Shell - the best DBA tool ?
MySQL Shell - the best DBA tool ?
 
High Availability in MySQL 8 using InnoDB Cluster
High Availability in MySQL 8 using InnoDB ClusterHigh Availability in MySQL 8 using InnoDB Cluster
High Availability in MySQL 8 using InnoDB Cluster
 
MySQL Shell : the best DBA tool ?
MySQL Shell : the best DBA tool ?MySQL Shell : the best DBA tool ?
MySQL Shell : the best DBA tool ?
 
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDSMySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
 
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
 

Semelhante a Oracle Open World 2018 / Code One : MySQL 8.0 Document Store

Oracle Code Roma: NoSQL + SQL = MySQL
Oracle Code Roma:   NoSQL + SQL = MySQLOracle Code Roma:   NoSQL + SQL = MySQL
Oracle Code Roma: NoSQL + SQL = MySQLFrederic Descamps
 
Looking Inside the MySQL 8.0 Document Store
Looking Inside the MySQL 8.0 Document StoreLooking Inside the MySQL 8.0 Document Store
Looking Inside the MySQL 8.0 Document StoreFrederic Descamps
 
Introduction to MySQL Document Store
Introduction to MySQL Document StoreIntroduction to MySQL Document Store
Introduction to MySQL Document StoreFrederic Descamps
 
MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)Vittorio Cioe
 
MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...Olivier DASINI
 
Oracle Code Event - MySQL JSON Document Store
Oracle Code Event - MySQL JSON Document StoreOracle Code Event - MySQL JSON Document Store
Oracle Code Event - MySQL JSON Document StoreMark Swarbrick
 
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...Olivier DASINI
 
MySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New WorldMySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New WorldFrederic Descamps
 
MySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreMySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreOlivier DASINI
 
DOAG Big Data Days 2017 - Cloud Journey
DOAG Big Data Days 2017 - Cloud JourneyDOAG Big Data Days 2017 - Cloud Journey
DOAG Big Data Days 2017 - Cloud JourneyHarald Erb
 
Solution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big DataSolution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big DataInfiniteGraph
 
Big data oracle_introduccion
Big data oracle_introduccionBig data oracle_introduccion
Big data oracle_introduccionFran Navarro
 
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 Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPIMySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPIRui Quelhas
 
Con8862 no sql, json and time series data
Con8862   no sql, json and time series dataCon8862   no sql, json and time series data
Con8862 no sql, json and time series dataAnuj Sahni
 
Oracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overviewOracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overviewPaulo Fagundes
 
MySQL 8.0 Introduction to NoSQL + SQL
MySQL 8.0 Introduction to NoSQL + SQLMySQL 8.0 Introduction to NoSQL + SQL
MySQL 8.0 Introduction to NoSQL + SQLManuel Contreras
 
OUG Scotland 2014 - NoSQL and MySQL - The best of both worlds
OUG Scotland 2014 - NoSQL and MySQL - The best of both worldsOUG Scotland 2014 - NoSQL and MySQL - The best of both worlds
OUG Scotland 2014 - NoSQL and MySQL - The best of both worldsAndrew Morgan
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App developmentLuca Garulli
 

Semelhante a Oracle Open World 2018 / Code One : MySQL 8.0 Document Store (20)

Oracle Code Roma: NoSQL + SQL = MySQL
Oracle Code Roma:   NoSQL + SQL = MySQLOracle Code Roma:   NoSQL + SQL = MySQL
Oracle Code Roma: NoSQL + SQL = MySQL
 
Looking Inside the MySQL 8.0 Document Store
Looking Inside the MySQL 8.0 Document StoreLooking Inside the MySQL 8.0 Document Store
Looking Inside the MySQL 8.0 Document Store
 
Introduction to MySQL Document Store
Introduction to MySQL Document StoreIntroduction to MySQL Document Store
Introduction to MySQL Document Store
 
MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)MySQL Document Store (Oracle Code Warsaw 2018)
MySQL Document Store (Oracle Code Warsaw 2018)
 
MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...
 
Oracle Code Event - MySQL JSON Document Store
Oracle Code Event - MySQL JSON Document StoreOracle Code Event - MySQL JSON Document Store
Oracle Code Event - MySQL JSON Document Store
 
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
 
MySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New WorldMySQL 8.0 Document Store - Discovery of a New World
MySQL 8.0 Document Store - Discovery of a New World
 
MySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreMySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document Store
 
DOAG Big Data Days 2017 - Cloud Journey
DOAG Big Data Days 2017 - Cloud JourneyDOAG Big Data Days 2017 - Cloud Journey
DOAG Big Data Days 2017 - Cloud Journey
 
Solution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big DataSolution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big Data
 
Big data oracle_introduccion
Big data oracle_introduccionBig data oracle_introduccion
Big data oracle_introduccion
 
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 Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPIMySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPI
 
Con8862 no sql, json and time series data
Con8862   no sql, json and time series dataCon8862   no sql, json and time series data
Con8862 no sql, json and time series data
 
Oracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overviewOracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overview
 
Stream based Data Integration
Stream based Data IntegrationStream based Data Integration
Stream based Data Integration
 
MySQL 8.0 Introduction to NoSQL + SQL
MySQL 8.0 Introduction to NoSQL + SQLMySQL 8.0 Introduction to NoSQL + SQL
MySQL 8.0 Introduction to NoSQL + SQL
 
OUG Scotland 2014 - NoSQL and MySQL - The best of both worlds
OUG Scotland 2014 - NoSQL and MySQL - The best of both worldsOUG Scotland 2014 - NoSQL and MySQL - The best of both worlds
OUG Scotland 2014 - NoSQL and MySQL - The best of both worlds
 
OrientDB for real & Web App development
OrientDB for real & Web App developmentOrientDB for real & Web App development
OrientDB for real & Web App development
 

Mais de Frederic Descamps

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionFrederic Descamps
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsFrederic Descamps
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfFrederic Descamps
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8Frederic Descamps
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022Frederic Descamps
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodeFrederic Descamps
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesFrederic Descamps
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsFrederic Descamps
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database ServiceFrederic Descamps
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQLFrederic Descamps
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Frederic Descamps
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021Frederic Descamps
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDSFrederic Descamps
 

Mais de Frederic Descamps (20)

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database System
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL Architectures
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and Histograms
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021
 
MySQL Shell for DBAs
MySQL Shell for DBAsMySQL Shell for DBAs
MySQL Shell for DBAs
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
 
MySQL Router REST API
MySQL Router REST APIMySQL Router REST API
MySQL Router REST API
 

Último

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Último (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Oracle Open World 2018 / Code One : MySQL 8.0 Document Store

  • 3. MySQL 8.0 a Document Store with all the benefits of a transactional RDBMS       Frédéric Descamps - MySQL Community Manager - Oracle 3 / 130
  • 4.   Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purpose only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied up in making purchasing decisions. The development, release and timing of any features or functionality described for Oracle´s product remains at the sole discretion of Oracle. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 4 / 130
  • 5. about me - http://about.me/lefred Who am I ? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 5 / 130
  • 6. Frédéric Descamps @lefred MySQL Evangelist Hacking MySQL since 3.23 devops believer living in Belgium 🇧🇪 http://lefred.be   Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 6 / 130
  • 7. RDBMS & MySQL Relational Databases Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 7 / 130
  • 8. Relational Databases Data Integrity Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 8 / 130
  • 9. Relational Databases Data Integrity normalization Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 9 / 130
  • 10. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 10 / 130
  • 11. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 11 / 130
  • 12. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability ACID compliant Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 12 / 130
  • 13. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability ACID compliant transactions Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 13 / 130
  • 14. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability ACID compliant transactions SQL Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 14 / 130
  • 15. Relational Databases Data Integrity normalization constraints (foreign keys, ...) Atomicity, Consistency, Isolation, Durability ACID compliant transactions SQL powerful query language Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 15 / 130
  • 16. NoSQL & MySQL NoSQL Databases Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 16 / 130
  • 17. NoSQL or Document Store Schemaless Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 17 / 130
  • 18. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 18 / 130
  • 19. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 19 / 130
  • 20. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 20 / 130
  • 21. NoSQL or Document Store Schemaless no schema design, no normalization, no foreign keys, no data types, ... very quick initial development Flexible data structure embedded arrays or objects Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 21 / 130
  • 22. NoSQL or Document Store 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 modelized optimaly into a relational model Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 22 / 130
  • 23. NoSQL or Document Store 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 modelized optimaly into a relational model objects persistance without the use of any ORM - mapping object-oriented Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 23 / 130
  • 24. NoSQL or Document Store 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 modelized optimaly into a relational model objects persistance without the use of any ORM - mapping object-oriented JSON Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 24 / 130
  • 25. NoSQL or Document Store 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 modelized optimaly into a relational model objects persistance without the use of any ORM - mapping object-oriented JSON close to frontend Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 25 / 130
  • 26. NoSQL or Document Store 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 modelized optimaly into a relational model objects persistance without the use of any ORM - mapping object-oriented JSON close to frontend native in JS Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 26 / 130
  • 27. NoSQL or Document Store 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 modelized optimaly into a relational model objects persistance without the use of any ORM - mapping object-oriented JSON close to frontend native in JS easy to learn Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 27 / 130
  • 28. How DBAs see data Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 28 / 130
  • 29. 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. 29 / 130
  • 30. What if there was a way to provide both SQL and NoSQL on one stable platform that has proven stability on well know technology with a large Community and a diverse ecosystem ? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 30 / 130
  • 31. DBMS or NoSQL ? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 31 / 130
  • 32. DBMS or NoSQL ? Why not both ? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 32 / 130
  • 33. The MySQL Document Store ! SQL is now optional ! Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 33 / 130
  • 34. SQL is now optional ! Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 34 / 130
  • 35. Developers: [x] schemaless [x] rapid prototying/simpler APIs [x] document model [x] transactions Operations: [x] performance management/visibility [x] robust replication, backup, restore [x] comprehensive tooling ecosystem [x] simpler application schema upgrades Business Owner: [x] don't lose my data == ACID trx [x] capture all my data = extensible/schemaless [x] product on schedule/time to market = rapid developement A solution for all Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 35 / 130
  • 36. MySQL Document Store the Solution Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 36 / 130
  • 37. Built on the MySQL JSON Data type and Proven MySQL Server Technology Provides a schema flexible JSON Document Store No SQL required No need to define all possible attributes, tables, etc. Uses new X DevAPI Can leverage generated column to extract JSON values into materialized columns that can be indexed for fast SQL searches. Document can be ~1GB It's a column in a row of a table It cannot exceed max_allowed_packet Allows use of modern programming styles No more embedded strings of SQL in your code Easy to read Also works with relational Tables Proven MySQL Technology Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 37 / 130
  • 38. X DevAPI Connectors for C++, Java, .Net, Node.js, Python, PHP working with Communities to help them supporting it too New MySQL Shell Command Completion Python, JavaScrips & SQL modes Admin functions New Util object A new high-level session concept that can scale from single MySQL Server to a multiple server environment Non-blocking, asynchronous calls follow common language patterns Supports CRUD operations Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 38 / 130
  • 39. X DevAPI plenty of sessions during Oracle Code ONE Developing Modern Applications with the MySQL Document Store and NodeJS [HOL1706], Tue Oct 23, 11:15 Connector/J Beyond JDBC: The X DevAPI for Java and MySQL as a Document Store [DEV6233], Tue Oct 23, 12:30 Develop Python Applications with MySQL Connector/Python [DEV5957], Wed Oct 24, 9.00 Develop PHP Applivations with MySQL X Dev API [DEV5981] - Wed Oct 24, 10.30 Python and the MySQL Document Store [DEV5959], Wed Oct 24, 3:15pm Node.js and the MySQL Document Store [DEV5986], Wed Oct 24, 1.30pm MySQL Connector/Node.js and X DevAPI [DEV5985], Thu Oct 25, 10.00 Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 39 / 130
  • 40. Starting using MySQL DS in few minutes Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 00:05 40 / 130
  • 41. MySQL Shell Info Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 00:05 41 / 130
  • 42. Migration from MongoDB to MySQL DS For this example, I will use the well known restaurants collection: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 42 / 130
  • 43. Migration from MongoDB to MySQL DS For this example, I will use the well known restaurants collection: We need to dump the data to a file and we will use MySQL Shell with the Python interpreter to load the data. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 43 / 130
  • 44. Dump and load using MySQL Shell & Python The following example is inspired by @datacharmer's work: https://www.slideshare.net/datacharmer/mysql-documentstore   Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 44 / 130
  • 45. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 00:05 45 / 130
  • 46. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 46 / 130
  • 47. Even better since MySQL Shell 8.0.13 Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 00:05 47 / 130
  • 48. Let´s query Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 48 / 130
  • 49. Let´s query That´s too much records to show it here... let´s limit it Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 49 / 130
  • 50. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 50 / 130
  • 51. Some more examples Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 51 / 130
  • 52. Some more examples Let´s add a selection criteria: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 52 / 130
  • 53. Using IN... Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 53 / 130
  • 54. Syntax slightly different than MongoDB Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 54 / 130
  • 55. Syntax slightly different than MongoDB > db.restaurants. nd({"cuisine": "French", "borough": { $not: /^Manhattan/} }, {"_id":0, "name": 1,"cuisine": 1, "borough": 1}).limit(2) { "borough" : "Queens", "cuisine" : "French", "name" : "La Baraka Restaurant" } { "borough" : "Queens", "cuisine" : "French", "name" : "Air France Lounge" } Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 55 / 130
  • 56. CRUD operations Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 56 / 130
  • 57. CRUD operations for collections Add a document Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 57 / 130
  • 58. CRUD operations for collections Add a document collection.add({ name: 'fred', age: 42 }) .add({ name: 'dave', age: 23 }) .execute() collection.add([ { name: 'dimo', age: 50 }, { name: 'kenny', age: 25 } ]).execute() Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 58 / 130
  • 59. CRUD operations for collections Modify a document Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 59 / 130
  • 60. CRUD operations for collections Modify a document collection.modify('name = :name') .bind('name', 'fred') .set('age', 43) .sort('name ASC') .limit(1) .execute() collection.modify('name = :name') .bind('name', 'fred') .patch({ age: 43, active: false }) .sort('name DESC') .limit(1) .execute() Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 60 / 130
  • 61. CRUD operations for collections Remove a document Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 61 / 130
  • 62. CRUD operations for collections Remove a document collection.remove('name = :name') .bind('name', 'fred') .sort('age ASC') .limit(1) .execute() Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 62 / 130
  • 63. MySQL Document Store Objects Summary Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 63 / 130
  • 64. Document Store Full ACID ! It relies on the proven MySQL InnoDB´s strength & robustness: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 64 / 130
  • 65. Document Store Full ACID ! It relies on the proven MySQL InnoDB´s strength & robustness: innodb_ ush_log_at_trx_commit = 1 Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 65 / 130
  • 66. Document Store Full ACID ! It relies on the proven MySQL InnoDB´s strength & robustness: innodb_ ush_log_at_trx_commit = 1 innodb_doublewrite = ON Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 66 / 130
  • 67. Document Store Full ACID ! It relies on the proven MySQL InnoDB´s strength & robustness: innodb_ ush_log_at_trx_commit = 1 innodb_doublewrite = ON sync_binlog = 1 Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 67 / 130
  • 68. Document Store Full ACID ! It relies on the proven MySQL InnoDB´s strength & robustness: innodb_ ush_log_at_trx_commit = 1 innodb_doublewrite = ON sync_binlog = 1 transaction_isolation = REPEATABLE-READ|READ- COMMITTED|... Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 68 / 130
  • 69. Document Store Full ACID ! It relies on the proven MySQL InnoDB´s strength & robustness: innodb_ ush_log_at_trx_commit = 1 innodb_doublewrite = ON sync_binlog = 1 transaction_isolation = REPEATABLE-READ|READ- COMMITTED|... We do care about your data ! Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 69 / 130
  • 70. MySQL DS Full ACID - Transactions support Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 00:05 70 / 130
  • 71. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 71 / 130
  • 72. what about my old SQL ? The hidden part of the iceberg Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 72 / 130
  • 73. JSON datatype is behind the scene native datatype (since 5.7.8) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 73 / 130
  • 74. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 74 / 130
  • 75. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 75 / 130
  • 76. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 76 / 130
  • 77. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...) Generated/virtual columns Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 77 / 130
  • 78. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...) Generated/virtual columns Indexing JSON data Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 78 / 130
  • 79. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...) Generated/virtual columns Indexing JSON data Foreign Keys to JSON data Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 79 / 130
  • 80. JSON datatype is behind the scene native datatype (since 5.7.8) JSON values are stored in MySQL tables using UTF8MB4 Conversion from "native" SQL types to JSON values JSON manipulation functions (JSON_EXTRACT, JSON_KEYS, JSON_SEARCH, JSON_TABLES, ...) Generated/virtual columns Indexing JSON data Foreign Keys to JSON data SQL Views to JSON data Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 80 / 130
  • 81. How does the MySQL Document Store work ? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 81 / 130
  • 82. What does a collection look like on the server ? Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 82 / 130
  • 83. _id Every document has a unique identifier called the document ID, which can be thought of as the equivalent of a table´s primary key. The document ID value can be manually assigned when adding a document. If no value is assigned, a document ID is generated and assigned to the document automatically ! Use getDocumentId() or getDocumentIds() to get _ids(s)     Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 83 / 130
  • 84. Mapping to SQL examples createCollection('mycollection') Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 84 / 130
  • 85. Mapping to SQL examples createCollection('mycollection') CREATE TABLE `test`.`mycoll` ( doc JSON, _id VARCHAR(32) GENERATED ALWAYS AS (doc->>'$._id') STORED PRIMARY KEY ) CHARSET utf8mb4; Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 85 / 130
  • 86. Mapping to SQL examples createCollection('mycollection') CREATE TABLE `test`.`mycoll` ( doc JSON, _id VARCHAR(32) GENERATED ALWAYS AS (doc->>'$._id') STORED PRIMARY KEY ) CHARSET utf8mb4; mycollection.add({'test': 1234}) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 86 / 130
  • 87. Mapping to SQL examples createCollection('mycollection') CREATE TABLE `test`.`mycoll` ( doc JSON, _id VARCHAR(32) GENERATED ALWAYS AS (doc->>'$._id') STORED PRIMARY KEY ) CHARSET utf8mb4; mycollection.add({'test': 1234}) INSERT INTO `test`.`mycoll` (doc) VALUES ( JSON_OBJECT('_id','663807fe367ee6114e0e5458bdac28bf', 'test',1234) ); Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 87 / 130
  • 88. Mapping to SQL examples (2) mycollection.find("test > 100") Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 88 / 130
  • 89. Mapping to SQL examples (2) mycollection.find("test > 100") SELECT doc FROM `test`.`mycoll` WHERE (JSON_EXTRACT(doc,'$.test') > 100); Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 89 / 130
  • 90. SQL and JSON Example Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 90 / 130
  • 91. SQL and JSON Example same as: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 91 / 130
  • 92. SQL and JSON Example same as: we can use it in SQL: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 92 / 130
  • 93. SQL and JSON Example (2): validation Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 93 / 130
  • 94. SQL and JSON Example (2): validation Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 94 / 130
  • 95. SQL and JSON Example (2): validation Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 95 / 130
  • 96. SQL and JSON Example (3): explain Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 96 / 130
  • 97. SQL and JSON Example (3): explain Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 97 / 130
  • 98. SQL and JSON Example (4): add index Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 98 / 130
  • 99. SQL and JSON Example (4): add index Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 99 / 130
  • 100. Indexes in Document Store It's also possible to create indexes without using SQL syntax: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 100 / 130
  • 101. Indexes in Document Store It's also possible to create indexes without using SQL syntax: Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 101 / 130
  • 102. SQL and JSON Example (5): arrays Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 102 / 130
  • 103. SQL and JSON Example (5): arrays Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 103 / 130
  • 104. SQL and JSON Example (5): arrays Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 104 / 130
  • 105. SQL and JSON Example (5): arrays Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 105 / 130
  • 106. NoSQL as SQL JSON_TABLE Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 106 / 130
  • 107. NoSQL as SQL (2) JSON_TABLE Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 107 / 130
  • 108. NoSQL as SQL - aggregation Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 108 / 130
  • 109. Challenge: list the best restaurant of each type of food and show the top 10, with the best one first !   don't forget that all these restaurants are just JSON documents Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 109 / 130
  • 110. NoSQL as SQL - aggregation (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 110 / 130
  • 111. NoSQL as SQL - aggregation (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 111 / 130
  • 112. NoSQL as SQL - aggregation (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 112 / 130
  • 113. SQL and NoSQL - JOINS Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 113 / 130
  • 114. SQL and NoSQL - JOINS Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 114 / 130
  • 115. SQL and NoSQL - JOINS Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 115 / 130
  • 116. SQL and NoSQL - JOINS (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 116 / 130
  • 117. SQL and NoSQL - JOINS (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 117 / 130
  • 118. SQL and NoSQL - JOINS (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 118 / 130
  • 119. SQL and NoSQL - and back to JSON Document Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 119 / 130
  • 120. NoSQL or SQL Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 120 / 130
  • 121. MySQL Shell is for DBAs and Developers Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 00:05 121 / 130
  • 122. MySQL Shell is for DBAs and Developers (2) Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 00:05 122 / 130
  • 123. Tuesday HOL1706 - Developing Modern Applications with the MySQL Document Store and Node.js DEV6233 - Connector/J Beyond JDBC: The X DevAPI for Java and MySQL as a Document Store Wednesday DEV5957 - Develop Python Application with MySQL Connector/Python DEV5981 - Develop PHP Applications with MySQL X DevAPI DEV5986 - Node.js and the MySQL Document Store DEV5959 - Python and the MySQL Document Store Thursday DEV5985 - MySQL Connector/Node.js and the X DevAPI More at the conference: catch up on yesterday's sessions PRO3056 - Introduction to the MySQL Document Store HOL1703 - A Practical Introduction to the MySQL Document Store Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 123 / 130
  • 124. what do I gain ? Conclusion Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 124 / 130
  • 125. schemaless flexible data structure easy to start (CRUD) Conclusion This is the best of the two worlds in one product ! Data integrity ACID Compliant Transactions SQL Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 125 / 130
  • 127. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 127 / 130
  • 128. http://lefred.be/content/top-10-reasons-for- nosql-with-mysql/ Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 128 / 130
  • 129. Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 129 / 130
  • 130. Thank you ! Any Questions ? share your 💕 for MySQL on social media using @mysql #MySQL8isGreat #OOW18 Copyright @ 2018 Oracle and/or its affiliates. All rights reserved. 130 / 130