SlideShare a Scribd company logo
1 of 32
Download to read offline
© 2018 Percona1
Laurynas Biveinis
MySQL Ecosystem in 2018
What’s new & exciting around “World’s most popular open source database”
Percona Server for MySQL tech lead
Big Data Conference Vilnius 2018
2018-11-28
© 2018 Percona2
Hi, I’m Laurynas
Database C++ engineer at Percona & Percona Server for
MySQL tech lead
▪Been doing this since 2011
▪Before that tried to do PhD in databases, failed
Percona: “Unbiased Open Source Database Experts”
▪Find and use the right tool for the job (even if it’s not Percona
Server for MySQL, to my great disappointment)
▪Hence, in a good position to evaluate technologies
© 2018 Percona3
MySQL: has been around since 1995
• Past the peak public hype
• Runs some of the world’s
largest OLTP databases
• Colorful yet healthy history
of forks, acquisitions,
politics
• Development is gaining
momentum
© 2018 Percona4
MySQL: popular in 2018
https://db-engines.com/en/ranking
© 2018 Percona5
MySQL: popular in 2018
Stack Overflow Popularity
MySQL
SQL Server
PostgreSQL
MongoDB
SQLite
0 15 30 45 60
19,7
25,9
32,9
41,2
58,7
26,6
21
26,5
38,6
55,6
2017 2018
Source: https://insights.stackoverflow.com/survey/2018/
Source: https://insights.stackoverflow.com/survey/2017
© 2018 Percona6
2018: MySQL 8.0 release
▪ Following MySQL 5.7 release in 2015 (the 1st one w/ doc store features)
▪ New data dictionary
▪ NOWAIT / SKIP LOCKED
▪ Instant ADD COLUMN
▪ partial in-place JSON updates, including replication
▪ JSON_TABLE
▪ Common table expressions
▪ Window functions
▪ SET PERSIST
▪ … too much to list here, go to http://bit.ly/2TOKAQm
© 2018 Percona7
MySQL 8.0: new data dictionary
▪Remember FRM files? They are gone!
▪Replaced by a transactional data dictionary: a set of internal InnoDB
tables
▪Finally crash-safe, atomic DDL statements
▪No more metadata files means fewer file system bottlenecks
▪One billion tables possible: http://bit.ly/2DCXfjI
▪Fast INFORMATION_SCHEMA queries
▪However, if something goes wrong, your ls-cd shell skills will get you
nowhere
• ibd2sdi - human readable metadata
© 2018 Percona8
▪http://bit.ly/2R98hkz
▪No longer filesystem scans
▪Views over InnoDB tables in DD
MySQL 8.0 fast INFORMATION_SCHEMA queries
© 2018 Percona9
MySQL 8.0 hot row handling: NOWAIT & SKIP
LOCKED
▪Implemented in AliSQL (Alibaba patch) and Facebook patch
▪Now in MySQL & MariaDB
▪Return error immediately instead of row lock wait timeout:
• SELECT … FOR UPDATE NOWAIT
▪Non-deterministically skip locked rows:
• SELECT … FOR UPDATE SKIP LOCKED
▪Example use cases: online shopping inventory availability, cinema
seat picker
© 2018 Percona10
MySQL 8.0 instant add column
ALTER TABLE t1 ADD COLUMN d INT DEFAULT 1000,
ALGORITHM=INSTANT;
Query OK, 0 rows affected (0.07 sec)
© 2018 Percona11
MySQL 8.0 partial JSON update
▪JSON_REPLACE on 1K doc, 10 byte update:
▪in 5.7: DELETE + INSERT
▪… replication of JSON_REPLACE in ROW: DELETE + INSERT!
▪In 8.0: JSON_REPLACE (JSON_SET, JSON_REMOVE) will do the delta
in-place
▪If binlog_row_value_options=PARTIAL_JSON, delta will be replicated
in ROW too
© 2018 Percona12
MySQL 8.0: JSON_TABLE
▪Convert JSON to a relational table, by providing column name, type
& path:
▪SELECT * FROM JSON_TABLE(

‘[{“x”:1, “y”:”6”}, {“x”:”2”, “y”:”5”}, {“x”:”3”, “y”:4}]’, “$[*]”

COLUMNS (x INT PATH “$.x”, y INT PATH “$.y”)) AS j;
+-------+
| x | y |
+---+---+
| 1 | 6 |
| 2 | 5 |
| 3 | 4 |
+---+---+
© 2018 Percona13
MySQL 8.0: Common Table Expressions
WITH RECURSIVE cte (n) AS
(
SELECT 1
UNION ALL
SELECT n + 1 FROM cte WHERE n < 5
)
SELECT * FROM cte;
+------+
| n |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+------+
© 2018 Percona14
MySQL 8.0: Common Table Expressions
WITH RECURSIVE fibonacci (n, fib_n,
next_fib_n) AS
(
SELECT 1, 0, 1
UNION ALL
SELECT n + 1, next_fib_n, fib_n + next_fib_n
FROM fibonacci WHERE n < 10
)
SELECT * FROM fibonacci;
+------+-------+------------+
| n | fib_n | next_fib_n |
+------+-------+------------+
| 1 | 0 | 1 |
| 2 | 1 | 1 |
| 3 | 1 | 2 |
| 4 | 2 | 3 |
| 5 | 3 | 5 |
| 6 | 5 | 8 |
| 7 | 8 | 13 |
| 8 | 13 | 21 |
| 9 | 21 | 34 |
| 10 | 34 | 55 |
+------+-------+------------+
© 2018 Percona15
MySQL 8.0: Window Functions
SELECT MONTH(date), SUM(sale),
       AVG(SUM(sale)) OVER (ORDER BY MONTH(date)
                            RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS sliding_avg
       FROM sales GROUP BY MONTH(date);
© 2018 Percona16
MySQL 8.0: SET PERSIST
▪In earlier versions, applying a config change:
• SET GLOBAL variable = new_value;
• $ vi my.cnf # I hope this is the right file and I didn’t make a typo
• … learn what broke on the next restart …
▪In 8.0
• SET PERSIST variable = new_value
▪For a RO variable, to take effect on the next restart:
• SET PERSIST_ONLY variable = new_value
• RESTART (also a new SQL command in 8.0)
▪No shell required
© 2018 Percona17
▪Concerns about Oracle
ownership of MySQL
• which have not materialized
▪By now, a database on its own,
no longer “a flavor of MySQL”
▪Different (and diverging) feature
set
▪Not necessarily MySQL-
compatible in replication setup
MariaDB: the main MySQL-like alternative
© 2018 Percona18
2018: MariaDB 10.3 is GA
▪System-versioned tables
▪Oracle PL/SQL compatibility
▪Instant ADD COLUMN
▪SEQUENCEs
▪… lots more, http://bit.ly/2E1zdzN
© 2018 Percona19
MariaDB 10.3: system-versioned tables
▪CREATE TABLE … WITH SYSTEM VERSIONING
▪INSERT a row, then UPDATE, UPDATE, UPDATE it, and then:
▪SELECT *, ROW_START, ROW_END FROM table FOR SYSTEM_TIME ALL;
• a b ROW_START ROW_END
• 1 0 2018-11-28 10:48:04.435534 2018-11-28 10:48:04.437197
• 1 1 2018-11-28 10:48:04.437197 2018-11-28 10:48:04.437505
• 1 2 2018-11-28 10:48:04.437505 2038-01-19 05:14:07.999999
▪SELECT * FROM table FOR SYSTEM_TIME AS OF TIMESTAMP ‘2018-10-01
00:00:00’
▪Transactionally-consistent and inconsistent
▪Space management provided too: PARTITION p HISTORY / DELETE HISTORY
© 2018 Percona20
MariaDB 10.3: Oracle PL/SQL
▪—sql-mode=oracle
▪Changes stored procedure / stored function / cursor / LOOP /
variable syntax, some function behavior, etc etc
▪Adds PACKAGE support
▪Empty string '' and NULL become identical
▪Etc
▪Might make migration easier?
© 2018 Percona21
MariaDB 10.3: SEQUENCE
▪CREATE SEQUENCE seq START WITH 1 INCREMENT BY 1;
▪INSERT INTO TABLE (id, …) VALUES (NEXT VALUE FOR seq, …)
▪At column definition:
• NOT NULL DEFAULT NEXT VALUE FOR seq
• AUTO_INCREMENT-like but more flexible
▪SELECT PREVIOUS VALUE for seq;
© 2018 Percona22
Patch (not fork) MySQL to
add:
▪Enterprise features for free
(threadpool, PAM auth)
▪Instrumentation
▪Performance/scalability
▪Selected new features
▪http://bit.ly/2DOg4Au
Percona Server: MySQL improved
© 2018 Percona23
Percona Server in 2018
▪Coming at the very end of 2018:
Percona Server 8.0 GA, now at
RC
▪Data at Rest Encryption
▪MyRocks: a new write- and
space- optimized storage
engine as GA
© 2018 Percona24
Percona Server: Data at Rest Encryption
▪MySQL 5.7: encryption of InnoDB tables, keys stored in a plaintext
file
▪MySQL 8.0: adds redo- & undo- log encryption
▪MariaDB: also binlog encryption, various temp files, automatic key
rotation, key storage in AWS
▪Percona Server 5.7: similar to MariaDB but compatible with MySQL &
key storage in Vault (not AWS)
▪Both MariaDB and Percona Server can reasonably achieve
everything-is-encrypted state
▪http://bit.ly/2zuRtxP
© 2018 Percona25
Percona Server: MyRocks
▪MyRocks: Facebook-made MySQL storage engine on the top of RocksDB
▪RocksDB: Facebook-made key-value store library
• Fork of Google LevelDB
▪InnoDB: B-tree
• Optimized for reads
▪RocksDB: LSM-tree
• Optimized for writes and disk space while reads stay OK-ish
▪You probably don’t want to run MySQL Facebook Patch directly
yourself (even if you can)
▪Percona (and MariaDB) integrated MyRocks for the general community
© 2018 Percona26
What’s the deal with all those forks?
http://bit.ly/2Qq9czS
© 2018 Percona27
MySQL in 2018: clusters
▪The built-in asynchronous
replication does not make a
cluster
• HA? Multi-master?
▪Existing (and actively-
developed) clusters: Percona
XtraDB Cluster & MariaDB
• Based on galera library +
Write Set replication patch
▪New player: Group Replication
WSREP
Galera
WSREP
Galera
WSREP
Galera
App
Reads Reads
Reads/Writes
© 2018 Percona28
Group Replication
▪Oracle MySQL shared-everything cluster (not to be confused with
shared-nothing MySQL Cluster)
▪Went GA in 5.7 at the end of 2016
• With number of issues that we couldn’t agree with the GA
qualification
▪However, Oracle has been hard at work to fix them
▪Lots of progress in 8.0
▪Still, elephant in the room: no automated node provisioning
▪If not GA, then getting there quickly
© 2018 Percona29
What sits in the front of the cluster?
▪Proxy does! If nothing else, to
shield you from the “who is
the primary now?” question
▪“Best” option in 2018:
• ProxySQL, 2.0 coming soon
▪Other options:
• MySQL Router
• MariaDB MaxScale (mind the
BS licence)
WSREP
Galera
WSREP
Galera
WSREP
Galera
ProxySQL
Reads Reads
Reads/Writes
App App
Reads/Writes Reads/Writes
© 2018 Percona30
(A side note on MySQL vision here)
▪InnoDB Cluster
• (not to be confused with
MySQL Cluster, XtraDB
Cluster, … Cluster)
▪Group Replication
▪MySQL Router
▪MySQL Shell
MySQL Router
Reads Reads
Reads/Writes
App App
Reads/Writes Reads/Writes
GR
GR
GR
MySQL Shell
Admin
Admin
© 2018 Percona31
MySQL in 2018: last but not least
▪Physical backups:
• Percona XtraBackup is the leader, being updated for 8.0
• mariabackup if using MariaDB incompatible features such as
encryption
▪Percona Toolkit, MySQL Utilities
▪MariaDB ColumnStore, mydumper, MHA, vitess, PRM on Pacemaker,
MySQL Sandbox, DBaaS, Aurora, …
▪Trying to dockerize MySQL
▪And then everyone is trying to figure out how to use Kubernetes
▪…
© 2018 Percona32
MySQL in 2018: Thank you!
▪join at slido.com with #bigdata2018 for questions!

More Related Content

What's hot

Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019Alkin Tezuysal
 
When is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar SeriesWhen is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar SeriesAlkin Tezuysal
 
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...Dave Stokes
 
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)Alexandre Dutra
 
Redefining tables online without surprises
Redefining tables online without surprisesRedefining tables online without surprises
Redefining tables online without surprisesNelson Calero
 
MySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMario Beck
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerColin Charles
 
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebMysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebAlkin Tezuysal
 
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Ted Wennmark
 
Galera 3.0 Webinar Slides: Galera Monitoring & Management
Galera 3.0 Webinar Slides: Galera Monitoring & ManagementGalera 3.0 Webinar Slides: Galera Monitoring & Management
Galera 3.0 Webinar Slides: Galera Monitoring & ManagementSeveralnines
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Colin Charles
 
MySQL Cluster (NDB) - Best Practices Percona Live 2017
MySQL Cluster (NDB) - Best Practices Percona Live 2017MySQL Cluster (NDB) - Best Practices Percona Live 2017
MySQL Cluster (NDB) - Best Practices Percona Live 2017Severalnines
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudSeveralnines
 
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Codership Oy - Creators of Galera Cluster
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)Aurimas Mikalauskas
 
The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016Colin Charles
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesTarique Saleem
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability SolutionsLenz Grimmer
 

What's hot (20)

Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019
 
When is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar SeriesWhen is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar Series
 
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
MySQL 5.7 NEW FEATURES, BETTER PERFORMANCE, AND THINGS THAT WILL BREAK -- Mid...
 
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
Staying Ahead of the Curve with Spring and Cassandra 4 (SpringOne 2020)
 
Redefining tables online without surprises
Redefining tables online without surprisesRedefining tables online without surprises
Redefining tables online without surprises
 
MySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDB
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
 
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebMysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
 
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8Upgrade to MySQL 5.7 and latest news planned for MySQL 8
Upgrade to MySQL 5.7 and latest news planned for MySQL 8
 
KubeCon_NA_2021
KubeCon_NA_2021KubeCon_NA_2021
KubeCon_NA_2021
 
Galera 3.0 Webinar Slides: Galera Monitoring & Management
Galera 3.0 Webinar Slides: Galera Monitoring & ManagementGalera 3.0 Webinar Slides: Galera Monitoring & Management
Galera 3.0 Webinar Slides: Galera Monitoring & Management
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015
 
MySQL Cluster (NDB) - Best Practices Percona Live 2017
MySQL Cluster (NDB) - Best Practices Percona Live 2017MySQL Cluster (NDB) - Best Practices Percona Live 2017
MySQL Cluster (NDB) - Best Practices Percona Live 2017
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
 
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
 
The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016
 
Mysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql FabricMysql User Camp : 20-June-14 : Mysql Fabric
Mysql User Camp : 20-June-14 : Mysql Fabric
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New Features
 
MySQL High Availability Solutions
MySQL High Availability SolutionsMySQL High Availability Solutions
MySQL High Availability Solutions
 

Similar to MySQL Ecosystem in 2018

Oracle Database Cloud Service - Provisioning Your First DBaaS Instance
Oracle Database Cloud Service - Provisioning Your First DBaaS InstanceOracle Database Cloud Service - Provisioning Your First DBaaS Instance
Oracle Database Cloud Service - Provisioning Your First DBaaS InstanceRevelation Technologies
 
Analyzing MySQL Logs with ClickHouse, by Peter Zaitsev
Analyzing MySQL Logs with ClickHouse, by Peter ZaitsevAnalyzing MySQL Logs with ClickHouse, by Peter Zaitsev
Analyzing MySQL Logs with ClickHouse, by Peter ZaitsevAltinity Ltd
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesDave Stokes
 
Upgrading to my sql 8.0
Upgrading to my sql 8.0Upgrading to my sql 8.0
Upgrading to my sql 8.0Ståle Deraas
 
How Database Convergence Impacts the Coming Decades of Data Management
How Database Convergence Impacts the Coming Decades of Data ManagementHow Database Convergence Impacts the Coming Decades of Data Management
How Database Convergence Impacts the Coming Decades of Data ManagementSingleStore
 
Healthcare Claim Reimbursement using Apache Spark
Healthcare Claim Reimbursement using Apache SparkHealthcare Claim Reimbursement using Apache Spark
Healthcare Claim Reimbursement using Apache SparkDatabricks
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)Jean-François Gagné
 
Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19Nelson Calero
 
Mysql ecosystem in 2019
Mysql ecosystem in 2019Mysql ecosystem in 2019
Mysql ecosystem in 2019Alkin Tezuysal
 
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim TkachenkoNoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim TkachenkoData Con LA
 
Upcoming changes in MySQL 5.7
Upcoming changes in MySQL 5.7Upcoming changes in MySQL 5.7
Upcoming changes in MySQL 5.7Morgan Tocker
 
Top-10-Features-In-MySQL-8.0 - Vinoth Kanna RS - Mydbops Team
Top-10-Features-In-MySQL-8.0 - Vinoth Kanna RS - Mydbops TeamTop-10-Features-In-MySQL-8.0 - Vinoth Kanna RS - Mydbops Team
Top-10-Features-In-MySQL-8.0 - Vinoth Kanna RS - Mydbops TeamMydbops
 
My sql 56_roadmap_april2012
My sql 56_roadmap_april2012My sql 56_roadmap_april2012
My sql 56_roadmap_april2012sqlhjalp
 
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...Geir Høydalsvik
 
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdfMySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdfAlkin Tezuysal
 
Exploring mysql cluster 7.4
Exploring mysql cluster 7.4Exploring mysql cluster 7.4
Exploring mysql cluster 7.4Ivan Ma
 
NoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONNoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONMario Beck
 
Introduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sIntroduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sSveta Smirnova
 

Similar to MySQL Ecosystem in 2018 (20)

Oracle Database Cloud Service - Provisioning Your First DBaaS Instance
Oracle Database Cloud Service - Provisioning Your First DBaaS InstanceOracle Database Cloud Service - Provisioning Your First DBaaS Instance
Oracle Database Cloud Service - Provisioning Your First DBaaS Instance
 
Percona Server 8.0
Percona Server 8.0Percona Server 8.0
Percona Server 8.0
 
Analyzing MySQL Logs with ClickHouse, by Peter Zaitsev
Analyzing MySQL Logs with ClickHouse, by Peter ZaitsevAnalyzing MySQL Logs with ClickHouse, by Peter Zaitsev
Analyzing MySQL Logs with ClickHouse, by Peter Zaitsev
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New Features
 
Upgrading to my sql 8.0
Upgrading to my sql 8.0Upgrading to my sql 8.0
Upgrading to my sql 8.0
 
How Database Convergence Impacts the Coming Decades of Data Management
How Database Convergence Impacts the Coming Decades of Data ManagementHow Database Convergence Impacts the Coming Decades of Data Management
How Database Convergence Impacts the Coming Decades of Data Management
 
Healthcare Claim Reimbursement using Apache Spark
Healthcare Claim Reimbursement using Apache SparkHealthcare Claim Reimbursement using Apache Spark
Healthcare Claim Reimbursement using Apache Spark
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
 
Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19Oracle Exadata Cloud Services guide from practical experience - OOW19
Oracle Exadata Cloud Services guide from practical experience - OOW19
 
Mysql ecosystem in 2019
Mysql ecosystem in 2019Mysql ecosystem in 2019
Mysql ecosystem in 2019
 
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim TkachenkoNoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
 
Upcoming changes in MySQL 5.7
Upcoming changes in MySQL 5.7Upcoming changes in MySQL 5.7
Upcoming changes in MySQL 5.7
 
Top-10-Features-In-MySQL-8.0 - Vinoth Kanna RS - Mydbops Team
Top-10-Features-In-MySQL-8.0 - Vinoth Kanna RS - Mydbops TeamTop-10-Features-In-MySQL-8.0 - Vinoth Kanna RS - Mydbops Team
Top-10-Features-In-MySQL-8.0 - Vinoth Kanna RS - Mydbops Team
 
My sql 56_roadmap_april2012
My sql 56_roadmap_april2012My sql 56_roadmap_april2012
My sql 56_roadmap_april2012
 
MySQL Cluster
MySQL ClusterMySQL Cluster
MySQL Cluster
 
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
2018: State of the Dolphin, MySQL Keynote at Percona Live Europe 2018, Frankf...
 
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdfMySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
 
Exploring mysql cluster 7.4
Exploring mysql cluster 7.4Exploring mysql cluster 7.4
Exploring mysql cluster 7.4
 
NoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSONNoSQL and MySQL: News about JSON
NoSQL and MySQL: News about JSON
 
Introduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]sIntroduction into MySQL Query Tuning for Dev[Op]s
Introduction into MySQL Query Tuning for Dev[Op]s
 

More from Laurynas Biveinis

Percona Server 5.7: Key Performance Algorithms
Percona Server 5.7: Key Performance AlgorithmsPercona Server 5.7: Key Performance Algorithms
Percona Server 5.7: Key Performance AlgorithmsLaurynas Biveinis
 
XtraDB 5.7: key performance algorithms
XtraDB 5.7: key performance algorithmsXtraDB 5.7: key performance algorithms
XtraDB 5.7: key performance algorithmsLaurynas Biveinis
 
Developing a database server: software engineer's view
Developing a database server: software engineer's viewDeveloping a database server: software engineer's view
Developing a database server: software engineer's viewLaurynas Biveinis
 
XtraDB 5.6 and 5.7: Key Performance Algorithms
XtraDB 5.6 and 5.7: Key Performance AlgorithmsXtraDB 5.6 and 5.7: Key Performance Algorithms
XtraDB 5.6 and 5.7: Key Performance AlgorithmsLaurynas Biveinis
 
Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014
Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014
Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014Laurynas Biveinis
 
Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014
Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014
Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014Laurynas Biveinis
 
Tracking Page Changes for Your Database and Bitmap Backups
Tracking Page Changes for Your Database and Bitmap BackupsTracking Page Changes for Your Database and Bitmap Backups
Tracking Page Changes for Your Database and Bitmap BackupsLaurynas Biveinis
 

More from Laurynas Biveinis (8)

Percona Server 8.0
Percona Server 8.0Percona Server 8.0
Percona Server 8.0
 
Percona Server 5.7: Key Performance Algorithms
Percona Server 5.7: Key Performance AlgorithmsPercona Server 5.7: Key Performance Algorithms
Percona Server 5.7: Key Performance Algorithms
 
XtraDB 5.7: key performance algorithms
XtraDB 5.7: key performance algorithmsXtraDB 5.7: key performance algorithms
XtraDB 5.7: key performance algorithms
 
Developing a database server: software engineer's view
Developing a database server: software engineer's viewDeveloping a database server: software engineer's view
Developing a database server: software engineer's view
 
XtraDB 5.6 and 5.7: Key Performance Algorithms
XtraDB 5.6 and 5.7: Key Performance AlgorithmsXtraDB 5.6 and 5.7: Key Performance Algorithms
XtraDB 5.6 and 5.7: Key Performance Algorithms
 
Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014
Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014
Percona Server 5.6: Enterprise-Grade MySQL / PLMCE 2014
 
Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014
Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014
Fast Incremental Backups with Percona Server and Percona XtraBackup / PLMCE 2014
 
Tracking Page Changes for Your Database and Bitmap Backups
Tracking Page Changes for Your Database and Bitmap BackupsTracking Page Changes for Your Database and Bitmap Backups
Tracking Page Changes for Your Database and Bitmap Backups
 

Recently uploaded

OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 

Recently uploaded (20)

OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 

MySQL Ecosystem in 2018

  • 1. © 2018 Percona1 Laurynas Biveinis MySQL Ecosystem in 2018 What’s new & exciting around “World’s most popular open source database” Percona Server for MySQL tech lead Big Data Conference Vilnius 2018 2018-11-28
  • 2. © 2018 Percona2 Hi, I’m Laurynas Database C++ engineer at Percona & Percona Server for MySQL tech lead ▪Been doing this since 2011 ▪Before that tried to do PhD in databases, failed Percona: “Unbiased Open Source Database Experts” ▪Find and use the right tool for the job (even if it’s not Percona Server for MySQL, to my great disappointment) ▪Hence, in a good position to evaluate technologies
  • 3. © 2018 Percona3 MySQL: has been around since 1995 • Past the peak public hype • Runs some of the world’s largest OLTP databases • Colorful yet healthy history of forks, acquisitions, politics • Development is gaining momentum
  • 4. © 2018 Percona4 MySQL: popular in 2018 https://db-engines.com/en/ranking
  • 5. © 2018 Percona5 MySQL: popular in 2018 Stack Overflow Popularity MySQL SQL Server PostgreSQL MongoDB SQLite 0 15 30 45 60 19,7 25,9 32,9 41,2 58,7 26,6 21 26,5 38,6 55,6 2017 2018 Source: https://insights.stackoverflow.com/survey/2018/ Source: https://insights.stackoverflow.com/survey/2017
  • 6. © 2018 Percona6 2018: MySQL 8.0 release ▪ Following MySQL 5.7 release in 2015 (the 1st one w/ doc store features) ▪ New data dictionary ▪ NOWAIT / SKIP LOCKED ▪ Instant ADD COLUMN ▪ partial in-place JSON updates, including replication ▪ JSON_TABLE ▪ Common table expressions ▪ Window functions ▪ SET PERSIST ▪ … too much to list here, go to http://bit.ly/2TOKAQm
  • 7. © 2018 Percona7 MySQL 8.0: new data dictionary ▪Remember FRM files? They are gone! ▪Replaced by a transactional data dictionary: a set of internal InnoDB tables ▪Finally crash-safe, atomic DDL statements ▪No more metadata files means fewer file system bottlenecks ▪One billion tables possible: http://bit.ly/2DCXfjI ▪Fast INFORMATION_SCHEMA queries ▪However, if something goes wrong, your ls-cd shell skills will get you nowhere • ibd2sdi - human readable metadata
  • 8. © 2018 Percona8 ▪http://bit.ly/2R98hkz ▪No longer filesystem scans ▪Views over InnoDB tables in DD MySQL 8.0 fast INFORMATION_SCHEMA queries
  • 9. © 2018 Percona9 MySQL 8.0 hot row handling: NOWAIT & SKIP LOCKED ▪Implemented in AliSQL (Alibaba patch) and Facebook patch ▪Now in MySQL & MariaDB ▪Return error immediately instead of row lock wait timeout: • SELECT … FOR UPDATE NOWAIT ▪Non-deterministically skip locked rows: • SELECT … FOR UPDATE SKIP LOCKED ▪Example use cases: online shopping inventory availability, cinema seat picker
  • 10. © 2018 Percona10 MySQL 8.0 instant add column ALTER TABLE t1 ADD COLUMN d INT DEFAULT 1000, ALGORITHM=INSTANT; Query OK, 0 rows affected (0.07 sec)
  • 11. © 2018 Percona11 MySQL 8.0 partial JSON update ▪JSON_REPLACE on 1K doc, 10 byte update: ▪in 5.7: DELETE + INSERT ▪… replication of JSON_REPLACE in ROW: DELETE + INSERT! ▪In 8.0: JSON_REPLACE (JSON_SET, JSON_REMOVE) will do the delta in-place ▪If binlog_row_value_options=PARTIAL_JSON, delta will be replicated in ROW too
  • 12. © 2018 Percona12 MySQL 8.0: JSON_TABLE ▪Convert JSON to a relational table, by providing column name, type & path: ▪SELECT * FROM JSON_TABLE(
 ‘[{“x”:1, “y”:”6”}, {“x”:”2”, “y”:”5”}, {“x”:”3”, “y”:4}]’, “$[*]”
 COLUMNS (x INT PATH “$.x”, y INT PATH “$.y”)) AS j; +-------+ | x | y | +---+---+ | 1 | 6 | | 2 | 5 | | 3 | 4 | +---+---+
  • 13. © 2018 Percona13 MySQL 8.0: Common Table Expressions WITH RECURSIVE cte (n) AS ( SELECT 1 UNION ALL SELECT n + 1 FROM cte WHERE n < 5 ) SELECT * FROM cte; +------+ | n | +------+ | 1 | | 2 | | 3 | | 4 | | 5 | +------+
  • 14. © 2018 Percona14 MySQL 8.0: Common Table Expressions WITH RECURSIVE fibonacci (n, fib_n, next_fib_n) AS ( SELECT 1, 0, 1 UNION ALL SELECT n + 1, next_fib_n, fib_n + next_fib_n FROM fibonacci WHERE n < 10 ) SELECT * FROM fibonacci; +------+-------+------------+ | n | fib_n | next_fib_n | +------+-------+------------+ | 1 | 0 | 1 | | 2 | 1 | 1 | | 3 | 1 | 2 | | 4 | 2 | 3 | | 5 | 3 | 5 | | 6 | 5 | 8 | | 7 | 8 | 13 | | 8 | 13 | 21 | | 9 | 21 | 34 | | 10 | 34 | 55 | +------+-------+------------+
  • 15. © 2018 Percona15 MySQL 8.0: Window Functions SELECT MONTH(date), SUM(sale),        AVG(SUM(sale)) OVER (ORDER BY MONTH(date)                             RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS sliding_avg        FROM sales GROUP BY MONTH(date);
  • 16. © 2018 Percona16 MySQL 8.0: SET PERSIST ▪In earlier versions, applying a config change: • SET GLOBAL variable = new_value; • $ vi my.cnf # I hope this is the right file and I didn’t make a typo • … learn what broke on the next restart … ▪In 8.0 • SET PERSIST variable = new_value ▪For a RO variable, to take effect on the next restart: • SET PERSIST_ONLY variable = new_value • RESTART (also a new SQL command in 8.0) ▪No shell required
  • 17. © 2018 Percona17 ▪Concerns about Oracle ownership of MySQL • which have not materialized ▪By now, a database on its own, no longer “a flavor of MySQL” ▪Different (and diverging) feature set ▪Not necessarily MySQL- compatible in replication setup MariaDB: the main MySQL-like alternative
  • 18. © 2018 Percona18 2018: MariaDB 10.3 is GA ▪System-versioned tables ▪Oracle PL/SQL compatibility ▪Instant ADD COLUMN ▪SEQUENCEs ▪… lots more, http://bit.ly/2E1zdzN
  • 19. © 2018 Percona19 MariaDB 10.3: system-versioned tables ▪CREATE TABLE … WITH SYSTEM VERSIONING ▪INSERT a row, then UPDATE, UPDATE, UPDATE it, and then: ▪SELECT *, ROW_START, ROW_END FROM table FOR SYSTEM_TIME ALL; • a b ROW_START ROW_END • 1 0 2018-11-28 10:48:04.435534 2018-11-28 10:48:04.437197 • 1 1 2018-11-28 10:48:04.437197 2018-11-28 10:48:04.437505 • 1 2 2018-11-28 10:48:04.437505 2038-01-19 05:14:07.999999 ▪SELECT * FROM table FOR SYSTEM_TIME AS OF TIMESTAMP ‘2018-10-01 00:00:00’ ▪Transactionally-consistent and inconsistent ▪Space management provided too: PARTITION p HISTORY / DELETE HISTORY
  • 20. © 2018 Percona20 MariaDB 10.3: Oracle PL/SQL ▪—sql-mode=oracle ▪Changes stored procedure / stored function / cursor / LOOP / variable syntax, some function behavior, etc etc ▪Adds PACKAGE support ▪Empty string '' and NULL become identical ▪Etc ▪Might make migration easier?
  • 21. © 2018 Percona21 MariaDB 10.3: SEQUENCE ▪CREATE SEQUENCE seq START WITH 1 INCREMENT BY 1; ▪INSERT INTO TABLE (id, …) VALUES (NEXT VALUE FOR seq, …) ▪At column definition: • NOT NULL DEFAULT NEXT VALUE FOR seq • AUTO_INCREMENT-like but more flexible ▪SELECT PREVIOUS VALUE for seq;
  • 22. © 2018 Percona22 Patch (not fork) MySQL to add: ▪Enterprise features for free (threadpool, PAM auth) ▪Instrumentation ▪Performance/scalability ▪Selected new features ▪http://bit.ly/2DOg4Au Percona Server: MySQL improved
  • 23. © 2018 Percona23 Percona Server in 2018 ▪Coming at the very end of 2018: Percona Server 8.0 GA, now at RC ▪Data at Rest Encryption ▪MyRocks: a new write- and space- optimized storage engine as GA
  • 24. © 2018 Percona24 Percona Server: Data at Rest Encryption ▪MySQL 5.7: encryption of InnoDB tables, keys stored in a plaintext file ▪MySQL 8.0: adds redo- & undo- log encryption ▪MariaDB: also binlog encryption, various temp files, automatic key rotation, key storage in AWS ▪Percona Server 5.7: similar to MariaDB but compatible with MySQL & key storage in Vault (not AWS) ▪Both MariaDB and Percona Server can reasonably achieve everything-is-encrypted state ▪http://bit.ly/2zuRtxP
  • 25. © 2018 Percona25 Percona Server: MyRocks ▪MyRocks: Facebook-made MySQL storage engine on the top of RocksDB ▪RocksDB: Facebook-made key-value store library • Fork of Google LevelDB ▪InnoDB: B-tree • Optimized for reads ▪RocksDB: LSM-tree • Optimized for writes and disk space while reads stay OK-ish ▪You probably don’t want to run MySQL Facebook Patch directly yourself (even if you can) ▪Percona (and MariaDB) integrated MyRocks for the general community
  • 26. © 2018 Percona26 What’s the deal with all those forks? http://bit.ly/2Qq9czS
  • 27. © 2018 Percona27 MySQL in 2018: clusters ▪The built-in asynchronous replication does not make a cluster • HA? Multi-master? ▪Existing (and actively- developed) clusters: Percona XtraDB Cluster & MariaDB • Based on galera library + Write Set replication patch ▪New player: Group Replication WSREP Galera WSREP Galera WSREP Galera App Reads Reads Reads/Writes
  • 28. © 2018 Percona28 Group Replication ▪Oracle MySQL shared-everything cluster (not to be confused with shared-nothing MySQL Cluster) ▪Went GA in 5.7 at the end of 2016 • With number of issues that we couldn’t agree with the GA qualification ▪However, Oracle has been hard at work to fix them ▪Lots of progress in 8.0 ▪Still, elephant in the room: no automated node provisioning ▪If not GA, then getting there quickly
  • 29. © 2018 Percona29 What sits in the front of the cluster? ▪Proxy does! If nothing else, to shield you from the “who is the primary now?” question ▪“Best” option in 2018: • ProxySQL, 2.0 coming soon ▪Other options: • MySQL Router • MariaDB MaxScale (mind the BS licence) WSREP Galera WSREP Galera WSREP Galera ProxySQL Reads Reads Reads/Writes App App Reads/Writes Reads/Writes
  • 30. © 2018 Percona30 (A side note on MySQL vision here) ▪InnoDB Cluster • (not to be confused with MySQL Cluster, XtraDB Cluster, … Cluster) ▪Group Replication ▪MySQL Router ▪MySQL Shell MySQL Router Reads Reads Reads/Writes App App Reads/Writes Reads/Writes GR GR GR MySQL Shell Admin Admin
  • 31. © 2018 Percona31 MySQL in 2018: last but not least ▪Physical backups: • Percona XtraBackup is the leader, being updated for 8.0 • mariabackup if using MariaDB incompatible features such as encryption ▪Percona Toolkit, MySQL Utilities ▪MariaDB ColumnStore, mydumper, MHA, vitess, PRM on Pacemaker, MySQL Sandbox, DBaaS, Aurora, … ▪Trying to dockerize MySQL ▪And then everyone is trying to figure out how to use Kubernetes ▪…
  • 32. © 2018 Percona32 MySQL in 2018: Thank you! ▪join at slido.com with #bigdata2018 for questions!