SlideShare a Scribd company logo
Differences between MariaDB and MySQL —
MariaDB 10.3 vs. MySQL 8.0
Colin Charles, Chief Evangelist, Percona Inc.

colin.charles@percona.com / byte@bytebot.net 

http://bytebot.net/blog/ | @bytebot on Twitter

db tech showcase, Tokyo, Japan

19 September 2018
whoami
• Chief Evangelist, Percona Inc

• Founding team of MariaDB Server (2009-2016) [Monty Program Ab,
merged with SkySQL Ab, now MariaDB Corporation]

• Formerly MySQL AB (exit: Sun Microsystems)

• Past lives include The Fedora Project (FESCO), OpenOffice.org

• MySQL Community Contributor of the Year Award winner 2014
License
• Creative Commons BY-NC-SA 4.0

• https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode 

A good base blog post resource
• High level, answer to a whitepaper

• https://www.percona.com/blog/2017/11/02/mysql-vs-mariadb-
reality-check/ 

• Versions compared:

• MySQL 8.0.12 (released: 27 July 2018)

• MariaDB Server 10.3.9 (released: 15 August 2018)
http://features.today/
• signup at http://features.today/ for updated information of what is
available in each MySQL or MariaDB Server or Percona Server for
MySQL release
Define: compatibility (OED)
• A state in which two things are able to exist or occur together
without problems or conflict.
Why this matters
• MariaDB Server is the “default” MySQL in many Linux distributions 

• not Ubuntu! (shipping MySQL 5.7)

• MariaDB isn’t MySQL - there are many cloud providers that have an option for
MariaDB

• Amazon Web Services (AWS) RDS MariaDB, Microsoft Azure, Rackspace Cloud

• There are incompatibilities (e.g. with connectors)

• https://github.com/brianmario/mysql2/issues/878 

• MariaDB Connector/C for MySQL and MariaDB Server. It is libmysqlclient API
compatible. LGPL. OpenSSL/GnuTLS/schannel (no more yaSSL/wolfSSL)

• header change in MariaDB 10.2.6 and mysqlclient python binding - https://
lists.launchpad.net/maria-developers/msg10726.html
Commitments
• Verbal commitments: “MySQL 5.6, should be comparable to
MariaDB Server 10.1. And for 10.2 it should be compatible with
MySQL 5.7” — Michael “Monty” Widenius, CTO of MariaDB
Corporation and MariaDB Foundation, 7 October 2016, MariaDB
Developer’s Meeting, Amsterdam

• http://mariadb.org/about/ 

• “It is an enhanced, drop-in replacement for MySQL.”
Licensing
• MariaDB Server: GPLv2 only

• MariaDB MaxScale: Business Source License

• MariaDB ColumnStore: GPLv2 only

• Backup & Restore, ColumnStore Kafka data adapter, MariaDB
MaxScale CDC Data Adapter: Business Source License

• MySQL has Community (GPLv2) and Enterprise releases
Support
• What is the support ecosystem and landscape like?

• Training?

• MySQL Certification (MariaDB Corporation started certification at M|
17, continued at M|18)
Community Contributions
• Oracle Contributor Agreement (OCA)

• MariaDB Contributor Agreement (MCA)

• BSD New

• Who maintains the code? What is the state of community
contributed code?
Governance
• MariaDB Corporation

• MariaDB Foundation

• Is there vendor lock-in in open
source?

• How many users are there,
really?
Releases MariaDB MySQL
5.1: 1 Feb 2010 5.1: 14 Nov 2008
5.2: 10 Nov 2010
5.3: 29 Feb 2012
5.5: 11 Apr 2012 5.5: 3 Dec 2010
5.6: 5 Feb 2013
10.0: 31 Mar 2014
10.1: 17 Oct 2015
5.7: 21 Oct 2015
10.2: 23 May 2017
8.0: 19 Apr 2018
10.3: 25 May 2018
What’s documented?
• https://mariadb.com/kb/en/the-mariadb-library/mariadb-vs-mysql-
compatibility/ 

• (closed!?)Tracker bug: https://jira.mariadb.org/browse/MDEV-10392

• https://mariadb.com/kb/en/library/system-variable-differences-
between-mariadb-and-mysql/ 

• https://mariadb.com/kb/en/library/incompatibilities-and-feature-
differences-between-mariadb-102-and-mysql-57/
Replication
GTID variances between MariaDB & MySQL
• https://mariadb.com/kb/en/library/gtid/#the-domain-id
MariaDB Replication
• Default binlog format is now MIXED (ROW in MySQL)

• Default replicate_annotate_row_events is ON

• Binlog event compression - log_bin_compress

• Time delayed replication (present in MySQL 5.6; arrived in MariaDB
10.2)

• read_binlog_speed_limit - restricting the speed at which the
slave reads the binlog from the master

• DML only Flashback - rollback instances/databases/tables to an
older snapshot (via Alibaba!)
5.1/5.2
• mysqld reads [mariadb] part of my.cnf for MariaDB Server only
options

• Binary-only storage engines won’t work without recompilation due
do different THD structure (e.g. commercial engines like ScaleDB)

• Extended slow query log statistics (microslow patch from Percona)

• More memory utilised: Aria used to handle internal temporary tables,
needs configuration

• MariaDB only: table elimination
5.3
• Error numbers for MariaDB are at 1900+; MySQL has to deal: https://
bugs.mysql.com/bug.php?id=72062 

• Microseconds arrived (MariaDB 10.1 follows the MySQL 5.6 format)

• SHOW PROCESSLIST with progress reporting

• New features: dynamic columns, virtual columns (5.7),
HandlerSocket plugin, Cassandra storage engine (now deprecated)

• Huge changes in optimiser + replication

• https://mariadb.com/kb/en/library/optimizer-feature-comparison-
matrix/
Differences between MariaDB 10.3 & MySQL 8.0
10.0
10.1
10.2
10.2
10.2
Differences between MariaDB 10.3 & MySQL 8.0
JSON
• 5.7 has a binary data type, MariaDB chooses not to implement it this
way, choosing to not “violate the SQL standard” - https://
jira.mariadb.org/browse/MDEV-9144 

• As fast, awaiting benchmarks - https://jira.mariadb.org/browse/
MDEV-13777
X Protocol
• MariaDB Server has no support for the MySQL X Protocol

• This means you cannot use mysqlsh to access MariaDB Server
Encryption
• MySQL 5.7 and MariaDB Server 10.1+ implement
encryption differently (one is fully tablespace
encryption, the other is based on the Google
patch for tablespace encryption in addition to
having table encryption via Eperi)

• MySQL 8 encrypts redo/undo logs via
configuration options; temporary tablespace or
binary log encryption does not exist (MariaDB
supports binary log encryption, and temporary
table encryption)

• MySQL requires innodb_file_per_table

• MySQL implementation works fully with Percona
XtraDB Cluster

• MariaDB Galera Cluster gcache is unencrypted
- https://jira.mariadb.org/browse/MDEV-9639 

• mysqlbinlog cannot read encrypted binary logs
- https://jira.mariadb.org/browse/MDEV-8813 

• workaround is use —read-from-remote-server as
the server has access to the keys via the
encryption plugin API. This adds load to the
server!

• Backups: MariaDB Backup for encrypted
backups 

• Key management: Percona has Vault, MariaDB
has an AWS Key Management Plugin, MySQL
has several but they are part of the Enterprise
release
PERFORMANCE_SCHEMA
• No sys schema by default (you can install the MySQL 5.6 version
yourself) - https://jira.mariadb.org/browse/MDEV-9077 

• No new PERFORMANCE_SCHEMA instrumentation from 5.7/8.0 -
https://jira.mariadb.org/browse/MDEV-6114 

• e.g. 52 rows in set (0.00 sec) vs. 87 rows in set (0.00 sec)
Security
• MySQL: caching_sha256_password

• MariaDB: ed25519 password plugin

• Needless to say the above are incompatible with each other

• validate_password is on by default in MySQL 5.7+
Other bits
• MariaDB: SHOW EXPLAIN FOR <thread_id>
• MySQL: EXPLAIN FOR CONNECTION <thread_id>
• https://jira.mariadb.org/browse/MDEV-10000
• MySQL has SUPER READONLY, missing in MariaDB - https://
jira.mariadb.org/browse/MDEV-9458 

• Replication crash-safety for non-GTID slaves - https://jira.mariadb.org/
browse/MDEV-8946 

• Minimal/NOBLOB Binlog Row Image replication fails when tables from
master have different PK in slave - https://jira.mariadb.org/browse/
MDEV-8398
mysql.user table changes
• MariaDB Server and MySQL differ here (not just by addition of roles)
- mysql.user.password is just
mysql.user.authentication_string 

• Password expiry? https://jira.mariadb.org/browse/MDEV-7597 

• Password last changed? Lifetime?

• ACCOUNT LOCK/UNLOCK
• VALIDATE_PASSWORD_STRENGTH() SQL function doesn’t work in
MariaDB Server
Differences between MariaDB 10.3 & MySQL 8.0
More 5.7
• Optimiser trace (5.6): https://jira.mariadb.org/browse/MDEV-6111 

• Optimizer hints - https://jira.mariadb.org/browse/MDEV-9078 

• RENAME INDEX - https://jira.mariadb.org/browse/MDEV-7318 

• Query rewriting? - https://jira.mariadb.org/browse/MDEV-5561 

• GIS: GeoJSON functions? Geohash functions?

• SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(11.11111
12.22222)’),2); [this works in MariaDB Server 10.3]

• SELECT ST_GeoHash(180,0,10), ST_GeoHash(-180,-90,15); [still
missing in MariaDB Server 10.3]
Niggling usability bits
• https://jira.mariadb.org/browse/MDEV-14448
Key focus points for MariaDB 10.3
• Oracle compatibility

• More storage engines

• Temporal data (system versioned tables)

• Plus some of the features from 10.2+10.1+10.0+5.5+5.3+5.2+5.1
that may not be in stock MySQL
MariaDB storage engine offerings
• MyRocks: for write-intensive
workloads

• SPIDER: for scalability and
sharding

• InnoDB: default for read/write
operations (no longer Percona
XtraDB since MariaDB 10.2)

• ColumnStore: analytical purposes
(not included in MariaDB Server
10.3 — still a separate download)

• OQGRAPH: leaves algorithm

• note: requires libJudy

• PARTITION: updates to make
SPIDER work better

• Cassandra: still around, requires
libthrift

• CONNECT: for ETL operations

• TokuDB: requires jemalloc and
transparent hugepages to be
never (not always)
Storage Engines
• InnoDB 5.7 is now included in MariaDB Server 10.2 (there is no longer Percona
XtraDB since 10.2)

• you need to remove XtraDB related options in my.cnf or the server won’t start

• https://lists.launchpad.net/maria-discuss/msg04708.html 

• More testing of InnoDB required, thank you community! 

• Test cases still need merging - https://jira.mariadb.org/browse/MDEV-13626 

• Slow starts - https://jira.mariadb.org/browse/MDEV-13869 / https://
lists.launchpad.net/maria-discuss/msg04922.html 

• Hangs on startup - https://jira.mariadb.org/browse/MDEV-9843 

• Persistent statistics - https://lists.launchpad.net/maria-discuss/msg04937.html
MyRocks
• RocksDB (Facebook) is a fork of LevelDB (Google). MyRocks is the interface to it
from MySQL/MariaDB

• Write optimised

• Focus on the endurance of flash devices to gain better lifetime (10x less write
amplification)

• Better compression than InnoDB (at least 2x)

• Ability to load data fast, avoiding compaction overheads

• Read-free replication (no random reads for updating secondary keys, only for
unique indexes; RFR does away with it all, with row-based binlog)

• Recommended read: https://mariadb.com/kb/en/library/differences-between-
myrocks-variants/
SPIDER
• Transparent sharding and re-sharding via SQL

• Partition by range/key/hash/list

• vertical partitioning engine, allows partition by columns

• Condition pushdown to the storage engine layer 

• JOIN, GROUP BY done internally (on the data nodes/shards)

• direct updates/deletes (pushdown to data nodes)

• direct aggregates (sums, min, max, avg through partition engine)

• Partition improvements: full-text support, multi-range read (MRR)

• Read the docs, please! https://mariadb.com/kb/en/library/spider-storage-
engine-overview/
Compression
• Row compression (ROW_FORMAT=COMPRESSED), to page
compression (PAGE_COMPRESSED=1), now to column compression

• Bonus? Storage engine independent

CREATE TABLE `users` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
`blurb` text /*!100301 COMPRESSED*/ DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
Compression
show status like 'column_%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| Column_compressions | 1 |
| Column_decompressions | 0 |
+-----------------------+-------+
Invisible columns
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
`secret` varchar(10) INVISIBLE DEFAULT
NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
insert into user (id,name,secret) values
("1","colin","yes");
select * from user;
+----+-------+
| id | name |
+----+-------+
| 1 | colin |
+——+-------+
select id,name,secret from user;
+----+-------+--------+
| id | name | secret |
+----+-------+--------+
| 1 | colin | yes |
+----+-------+--------+
System versioned tables
• SQL 2011 standard. Stores history of all changes.

• Can alter a table to enable/disable/remove system versioned data

• Queries? 

• AS OF to select data as of a point in time

• BETWEEN .. AND to select data between two points in time

• Partition data BY SYSTEM_TIME

• Just ALTER .. ADD SYSTEM VERSIONING or create a table WITH
SYSTEM VERSIONING
System versioned tables
create table employees (name varchar(10), salary int,
department varchar(10)) with system versioning;
insert into employees values ("colin", 1000, “mktg");
update employees set salary=10000 where name=“colin";
update employees set department="eng" where
name=“colin"
select * from employees where name="colin";
+-------+--------+------+
| name | salary | dept |
+-------+--------+------+
| colin | 10000 | eng |
+———+--------+------+
select *, ROW_START, ROW_END from employees for
SYSTEM_TIME ALL;
+-------+--------+------------
+----------------------------
+----------------------------+
| name | salary | department | ROW_START
| ROW_END |
+-------+--------+------------
+----------------------------
+----------------------------+
| colin | 10000 | eng | 2018-06-26
13:00:53.772241 | 2038-01-19 03:14:07.999999 |
| colin | 1000 | mktg | 2018-06-26
13:00:03.656662 | 2018-06-26 13:00:24.251594 |
| colin | 10000 | mktg | 2018-06-26
13:00:24.251594 | 2018-06-26 13:00:53.772241 |
+-------+--------+------------
+----------------------------
+----------------------------+
AS OF example
SELECT * FROM employees FOR SYSTEM_TIME AS OF
TIMESTAMP'2018-06-26 13:00:24';
+-------+--------+------------+
| name | salary | department |
+-------+--------+------------+
| colin | 1000 | mktg |
+-------+--------+------------+
Oracle compatibility - Sequences
• Sequences to create a sequence of numeric values

• Not to be confused with replacing AUTO_INCREMENT, is an
alternative to creating unique identifiers

• With a sequence, you can compute the last number created by all
existing sequences, whereas AUTO_INCREMENT can only compute
its own last number created
Sequences
create sequence seq start
with 10 increment by 10;
select nextval(seq);
+--------------+
| nextval(seq) |
+--------------+
| 10 |
+--------------+
select nextval(seq);
+--------------+
| nextval(seq) |
+--------------+
| 20 |
+--------------+
select nextval(seq);
+--------------+
| nextval(seq) |
+--------------+
| 30 |
+--------------+
select lastval(seq);
+--------------+
| lastval(seq) |
+--------------+
| 30 |
+--------------+
select previous value for
seq;
+------------------------
+
| previous value for seq
|
+------------------------
+
| 30
|
+------------------------
+
Oracle PL/SQL
• PL/SQL compatibility parser added for easier migration from Oracle to MariaDB

• sql_mode=‘oracle’

• Data types (have synonyms in MariaDB): VARCHAR2 (VARCHAR), NUMBER (DECIMAL),
DATE (DATETIME), RAW (VARBINARY), BLOB (LONGBLOB), CLOB (LONGTEXT)

• CURRVAL, NEXTVAL

• EXECUTE IMMEDIATE

• Existing stored procedures, triggers

• ROW datatype for stored routines

• Cursors with parameters

• Packages

• https://mariadb.com/kb/en/library/sql_modeoracle-from-mariadb-103/
Other bits
• INTERSECT and EXCEPT to UNION

• Stored aggregate functions - functions that are computed over a
sequence of rows and return one result for the sequence of rows

• see https://jira.mariadb.org/browse/MDEV-16315 

• Idle transaction timeouts

• idle_transaction_timeout,
idle_readonly_transaction_timeout,
idle_write_transaction_timeout
What about the rest?
• Instant ADD COLUMN is in MySQL 8 and MariaDB Server 10.3

• PROXY protocol support has been in Percona Server for MySQL
5.6/5.7, but is new to MariaDB Server and missing in MySQL 8.0
Using MySQL 8.0? Some features missing in
MariaDB Server 10.3
• JSON is not stored as a binary data type

• GTIDs are different in MariaDB (e.g. no GTID in
OK packet)

• No X Protocol, mysqlsh support

• No group replication

• PERFORMANCE_SCHEMA from MySQL 5.6

• No caching_sha256_password (ed25519)

• mysql.user.password now is
mysql.user.authentication_string

• No password expiry, last changed, etc. however
there is cracklib_password_check

• No optimiser hints, optimiser trace

• No SET PERSIST

• No Native data dictionary in MySQL 8 (atomic,
crash-safe DDLs, faster
INFORMATION_SCHEMA, no more MySQL
system tables)

• Not as fast utf8mb4

• No persistent auto increment

• No automatically managed UNDO tablespace

• No InnoDB self-tuning (since InnoDB is from 5.7)

• No invisible indexes

• No TempTable Storage engine

• No backup locks

• No InnoDB native partitioning

• No resource groups
Differences between MariaDB 10.3 & MySQL 8.0
Using MariaDB Server 10.3? MySQL 8.0
community edition is missing these features
• More storage engines

• MyRocks, TokuDB, CONNECT,
SPIDER. MyISAM user? Segmented
key caches will help

• Threadpool

• PAM authentication

• GSSAPI authentication (Kerberos,
Active Directory)

• Optimistic parallel replication

• ANALYZE <statement>

• cracklib_password_check

• Oracle compatibility

• Temporal data (system versioned tables)

• PAM/GSSAPI/SSPI authentication

• AWS Key Management Plugin

• Table elimination

• User statistics

• Dynamic columns

• Invisible columns

• Query cache
When to use MySQL?
• http://www.thecompletelistoffeatures.com/ (which is MySQL 5.7
based, but really, many of those features may not quite be in
MariaDB Server 10.3 even)

• Performance…: http://dimitrik.free.fr/blog/index.html 

• Think about a MySQL InnoDB Cluster, based on group replication
that is configured in the MySQL Shell, with the MySQL Router?
Don’t forget: http://features.today/
• signup at http://features.today/ for updated information of what is
available in each MySQL or MariaDB Server or Percona Server for
MySQL release

• slides will be sent to the mailing list
Thank you!
Colin Charles
colin.charles@percona.com / byte@bytebot.net
http://bytebot.net/blog | @bytebot on twitter
slides: slideshare.net/bytebot
Ad

More Related Content

What's hot (20)

Aws storage
Aws storageAws storage
Aws storage
Chandan Ganguly
 
MariaDB Performance Tuning and Optimization
MariaDB Performance Tuning and OptimizationMariaDB Performance Tuning and Optimization
MariaDB Performance Tuning and Optimization
MariaDB plc
 
MySQL Atchitecture and Concepts
MySQL Atchitecture and ConceptsMySQL Atchitecture and Concepts
MySQL Atchitecture and Concepts
Tuyen Vuong
 
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMailAWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
Amazon Web Services Japan
 
MariaDB MaxScale: an Intelligent Database Proxy
MariaDB MaxScale: an Intelligent Database ProxyMariaDB MaxScale: an Intelligent Database Proxy
MariaDB MaxScale: an Intelligent Database Proxy
Markus Mäkelä
 
Qlik Replicateでのタスクの定義と管理
Qlik Replicateでのタスクの定義と管理Qlik Replicateでのタスクの定義と管理
Qlik Replicateでのタスクの定義と管理
QlikPresalesJapan
 
AWS Black Belt Techシリーズ AWS Lambda
AWS Black Belt Techシリーズ AWS LambdaAWS Black Belt Techシリーズ AWS Lambda
AWS Black Belt Techシリーズ AWS Lambda
Amazon Web Services Japan
 
AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介AWS Database Migration Service ご紹介
AWS Database Migration Service ご紹介
Amazon Web Services Japan
 
InnoDb Vs NDB Cluster
InnoDb Vs NDB ClusterInnoDb Vs NDB Cluster
InnoDb Vs NDB Cluster
Mark Swarbrick
 
Clustering and High Availability
Clustering and High Availability Clustering and High Availability
Clustering and High Availability
Information Technology
 
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
Amazon Web Services Korea
 
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
Amazon Web Services Korea
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
Amazon Web Services Japan
 
InnoDB Scalability improvements in MySQL 8.0
InnoDB Scalability improvements in MySQL 8.0InnoDB Scalability improvements in MySQL 8.0
InnoDB Scalability improvements in MySQL 8.0
Mydbops
 
AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail
Amazon Web Services Japan
 
Redis
RedisRedis
Redis
imalik8088
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
 
MariaDB Galera Cluster presentation
MariaDB Galera Cluster presentationMariaDB Galera Cluster presentation
MariaDB Galera Cluster presentation
Francisco Gonçalves
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
 
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
Amazon Web Services Japan
 
MariaDB Performance Tuning and Optimization
MariaDB Performance Tuning and OptimizationMariaDB Performance Tuning and Optimization
MariaDB Performance Tuning and Optimization
MariaDB plc
 
MySQL Atchitecture and Concepts
MySQL Atchitecture and ConceptsMySQL Atchitecture and Concepts
MySQL Atchitecture and Concepts
Tuyen Vuong
 
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMailAWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
AWS Black Belt Techシリーズ Amazon WorkDocs / Amazon WorkMail
Amazon Web Services Japan
 
MariaDB MaxScale: an Intelligent Database Proxy
MariaDB MaxScale: an Intelligent Database ProxyMariaDB MaxScale: an Intelligent Database Proxy
MariaDB MaxScale: an Intelligent Database Proxy
Markus Mäkelä
 
Qlik Replicateでのタスクの定義と管理
Qlik Replicateでのタスクの定義と管理Qlik Replicateでのタスクの定義と管理
Qlik Replicateでのタスクの定義と管理
QlikPresalesJapan
 
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
AWS CLOUD 2017 - AWS 기반 하이브리드 클라우드 환경 구성 전략 (김용우 솔루션즈 아키텍트)
Amazon Web Services Korea
 
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
Amazon Dynamo DB 활용하기 - 강민석 :: AWS Database Modernization Day 온라인
Amazon Web Services Korea
 
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
Amazon Web Services Japan
 
InnoDB Scalability improvements in MySQL 8.0
InnoDB Scalability improvements in MySQL 8.0InnoDB Scalability improvements in MySQL 8.0
InnoDB Scalability improvements in MySQL 8.0
Mydbops
 
AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail
Amazon Web Services Japan
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
Amazon Web Services Japan
 
MariaDB Galera Cluster presentation
MariaDB Galera Cluster presentationMariaDB Galera Cluster presentation
MariaDB Galera Cluster presentation
Francisco Gonçalves
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
Amazon Web Services Japan
 
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service20210216 AWS Black Belt Online Seminar AWS Database Migration Service
20210216 AWS Black Belt Online Seminar AWS Database Migration Service
Amazon Web Services Japan
 

Similar to Differences between MariaDB 10.3 & MySQL 8.0 (20)

MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
Colin Charles
 
MariaDB 10.0 - SkySQL Paris Meetup
MariaDB 10.0 - SkySQL Paris MeetupMariaDB 10.0 - SkySQL Paris Meetup
MariaDB 10.0 - SkySQL Paris Meetup
MariaDB Corporation
 
Meet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitMeet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web Summit
Colin Charles
 
Mariadb10 和新项目中有什么
Mariadb10 和新项目中有什么Mariadb10 和新项目中有什么
Mariadb10 和新项目中有什么
YUCHENG HU
 
MariaDB 10 and what's new with the project
MariaDB 10 and what's new with the projectMariaDB 10 and what's new with the project
MariaDB 10 and what's new with the project
Colin Charles
 
MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC
Colin Charles
 
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin CharlesA26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
Insight Technology, Inc.
 
Maria db the new mysql (Colin Charles)
Maria db the new mysql (Colin Charles)Maria db the new mysql (Colin Charles)
Maria db the new mysql (Colin Charles)
Ontico
 
MariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started TutorialMariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started Tutorial
phamhphuc
 
MariaDB 10.2 & MariaDB 10.1 by Michael Monty Widenius at Database Camp 2016 @ UN
MariaDB 10.2 & MariaDB 10.1 by Michael Monty Widenius at Database Camp 2016 @ UNMariaDB 10.2 & MariaDB 10.1 by Michael Monty Widenius at Database Camp 2016 @ UN
MariaDB 10.2 & MariaDB 10.1 by Michael Monty Widenius at Database Camp 2016 @ UN
✔ Eric David Benari, PMP
 
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
Colin Charles
 
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Corporation
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
Colin Charles
 
MariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLMariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQL
Colin Charles
 
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
Insight Technology, Inc.
 
Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)
kayokogoto
 
Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09
GOTO Satoru
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorial
Colin Charles
 
MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)
Colin Charles
 
The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it! The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it!
Colin Charles
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
Colin Charles
 
MariaDB 10.0 - SkySQL Paris Meetup
MariaDB 10.0 - SkySQL Paris MeetupMariaDB 10.0 - SkySQL Paris Meetup
MariaDB 10.0 - SkySQL Paris Meetup
MariaDB Corporation
 
Meet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web SummitMeet MariaDB 10.1 at the Bulgaria Web Summit
Meet MariaDB 10.1 at the Bulgaria Web Summit
Colin Charles
 
Mariadb10 和新项目中有什么
Mariadb10 和新项目中有什么Mariadb10 和新项目中有什么
Mariadb10 和新项目中有什么
YUCHENG HU
 
MariaDB 10 and what's new with the project
MariaDB 10 and what's new with the projectMariaDB 10 and what's new with the project
MariaDB 10 and what's new with the project
Colin Charles
 
MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC MariaDB 10: A MySQL Replacement - HKOSC
MariaDB 10: A MySQL Replacement - HKOSC
Colin Charles
 
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin CharlesA26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
A26 MariaDB : The New&Implemented MySQL Branch by Colin Charles
Insight Technology, Inc.
 
Maria db the new mysql (Colin Charles)
Maria db the new mysql (Colin Charles)Maria db the new mysql (Colin Charles)
Maria db the new mysql (Colin Charles)
Ontico
 
MariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started TutorialMariaDB - Fast, Easy & Strong - Get Started Tutorial
MariaDB - Fast, Easy & Strong - Get Started Tutorial
phamhphuc
 
MariaDB 10.2 & MariaDB 10.1 by Michael Monty Widenius at Database Camp 2016 @ UN
MariaDB 10.2 & MariaDB 10.1 by Michael Monty Widenius at Database Camp 2016 @ UNMariaDB 10.2 & MariaDB 10.1 by Michael Monty Widenius at Database Camp 2016 @ UN
MariaDB 10.2 & MariaDB 10.1 by Michael Monty Widenius at Database Camp 2016 @ UN
✔ Eric David Benari, PMP
 
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
Colin Charles
 
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Corporation
 
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB MeetupMariaDB 10.1   what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
MariaDB 10.1 what's new and what's coming in 10.2 - Tokyo MariaDB Meetup
Colin Charles
 
MariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLMariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQL
Colin Charles
 
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale  by ...
[db tech showcase Tokyo 2014] B15: Scalability with MariaDB and MaxScale by ...
Insight Technology, Inc.
 
Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)Maria db 10 and the mariadb foundation(colin)
Maria db 10 and the mariadb foundation(colin)
kayokogoto
 
Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09Introduction of MariaDB 2017 09
Introduction of MariaDB 2017 09
GOTO Satoru
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorial
Colin Charles
 
MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)MariaDB: in-depth (hands on training in Seoul)
MariaDB: in-depth (hands on training in Seoul)
Colin Charles
 
The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it! The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it!
Colin Charles
 
Ad

More from Colin Charles (20)

What is MariaDB Server 10.3?
What is MariaDB Server 10.3?What is MariaDB Server 10.3?
What is MariaDB Server 10.3?
Colin Charles
 
Databases in the hosted cloud
Databases in the hosted cloud Databases in the hosted cloud
Databases in the hosted cloud
Colin Charles
 
Databases in the Hosted Cloud
Databases in the Hosted CloudDatabases in the Hosted Cloud
Databases in the Hosted Cloud
Colin Charles
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability Tutorial
Colin Charles
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Colin Charles
 
Capacity planning for your data stores
Capacity planning for your data storesCapacity planning for your data stores
Capacity planning for your data stores
Colin Charles
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
Colin Charles
 
Lessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companiesLessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companies
Colin Charles
 
Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?
Colin Charles
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
Colin Charles
 
The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016
Colin Charles
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Colin Charles
 
Lessons from database failures
Lessons from database failures Lessons from database failures
Lessons from database failures
Colin Charles
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
Colin Charles
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
Colin Charles
 
My first moments with MongoDB
My first moments with MongoDBMy first moments with MongoDB
My first moments with MongoDB
Colin Charles
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016
Colin Charles
 
Tuning Linux for your database FLOSSUK 2016
Tuning Linux for your database FLOSSUK 2016Tuning Linux for your database FLOSSUK 2016
Tuning Linux for your database FLOSSUK 2016
Colin Charles
 
Distributions from the view a package
Distributions from the view a packageDistributions from the view a package
Distributions from the view a package
Colin Charles
 
The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016
Colin Charles
 
What is MariaDB Server 10.3?
What is MariaDB Server 10.3?What is MariaDB Server 10.3?
What is MariaDB Server 10.3?
Colin Charles
 
Databases in the hosted cloud
Databases in the hosted cloud Databases in the hosted cloud
Databases in the hosted cloud
Colin Charles
 
Databases in the Hosted Cloud
Databases in the Hosted CloudDatabases in the Hosted Cloud
Databases in the Hosted Cloud
Colin Charles
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability Tutorial
Colin Charles
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Colin Charles
 
Capacity planning for your data stores
Capacity planning for your data storesCapacity planning for your data stores
Capacity planning for your data stores
Colin Charles
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
Colin Charles
 
Lessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companiesLessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companies
Colin Charles
 
Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?
Colin Charles
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
Colin Charles
 
The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016
Colin Charles
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Colin Charles
 
Lessons from database failures
Lessons from database failures Lessons from database failures
Lessons from database failures
Colin Charles
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
Colin Charles
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
Colin Charles
 
My first moments with MongoDB
My first moments with MongoDBMy first moments with MongoDB
My first moments with MongoDB
Colin Charles
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016
Colin Charles
 
Tuning Linux for your database FLOSSUK 2016
Tuning Linux for your database FLOSSUK 2016Tuning Linux for your database FLOSSUK 2016
Tuning Linux for your database FLOSSUK 2016
Colin Charles
 
Distributions from the view a package
Distributions from the view a packageDistributions from the view a package
Distributions from the view a package
Colin Charles
 
The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016
Colin Charles
 
Ad

Recently uploaded (20)

"Rebranding for Growth", Anna Velykoivanenko
"Rebranding for Growth", Anna Velykoivanenko"Rebranding for Growth", Anna Velykoivanenko
"Rebranding for Growth", Anna Velykoivanenko
Fwdays
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Salesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docxSalesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docx
José Enrique López Rivera
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
"Rebranding for Growth", Anna Velykoivanenko
"Rebranding for Growth", Anna Velykoivanenko"Rebranding for Growth", Anna Velykoivanenko
"Rebranding for Growth", Anna Velykoivanenko
Fwdays
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Salesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docxSalesforce AI Associate 2 of 2 Certification.docx
Salesforce AI Associate 2 of 2 Certification.docx
José Enrique López Rivera
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Buckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug LogsBuckeye Dreamin' 2023: De-fogging Debug Logs
Buckeye Dreamin' 2023: De-fogging Debug Logs
Lynda Kane
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Hands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordDataHands On: Create a Lightning Aura Component with force:RecordData
Hands On: Create a Lightning Aura Component with force:RecordData
Lynda Kane
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Asthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdfAsthma presentación en inglés abril 2025 pdf
Asthma presentación en inglés abril 2025 pdf
VanessaRaudez
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 

Differences between MariaDB 10.3 & MySQL 8.0

  • 1. Differences between MariaDB and MySQL — MariaDB 10.3 vs. MySQL 8.0 Colin Charles, Chief Evangelist, Percona Inc. [email protected] / [email protected] http://bytebot.net/blog/ | @bytebot on Twitter db tech showcase, Tokyo, Japan 19 September 2018
  • 2. whoami • Chief Evangelist, Percona Inc • Founding team of MariaDB Server (2009-2016) [Monty Program Ab, merged with SkySQL Ab, now MariaDB Corporation] • Formerly MySQL AB (exit: Sun Microsystems) • Past lives include The Fedora Project (FESCO), OpenOffice.org • MySQL Community Contributor of the Year Award winner 2014
  • 3. License • Creative Commons BY-NC-SA 4.0 • https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode 

  • 4. A good base blog post resource • High level, answer to a whitepaper • https://www.percona.com/blog/2017/11/02/mysql-vs-mariadb- reality-check/ • Versions compared: • MySQL 8.0.12 (released: 27 July 2018) • MariaDB Server 10.3.9 (released: 15 August 2018)
  • 5. http://features.today/ • signup at http://features.today/ for updated information of what is available in each MySQL or MariaDB Server or Percona Server for MySQL release
  • 6. Define: compatibility (OED) • A state in which two things are able to exist or occur together without problems or conflict.
  • 7. Why this matters • MariaDB Server is the “default” MySQL in many Linux distributions • not Ubuntu! (shipping MySQL 5.7) • MariaDB isn’t MySQL - there are many cloud providers that have an option for MariaDB • Amazon Web Services (AWS) RDS MariaDB, Microsoft Azure, Rackspace Cloud • There are incompatibilities (e.g. with connectors) • https://github.com/brianmario/mysql2/issues/878 • MariaDB Connector/C for MySQL and MariaDB Server. It is libmysqlclient API compatible. LGPL. OpenSSL/GnuTLS/schannel (no more yaSSL/wolfSSL) • header change in MariaDB 10.2.6 and mysqlclient python binding - https:// lists.launchpad.net/maria-developers/msg10726.html
  • 8. Commitments • Verbal commitments: “MySQL 5.6, should be comparable to MariaDB Server 10.1. And for 10.2 it should be compatible with MySQL 5.7” — Michael “Monty” Widenius, CTO of MariaDB Corporation and MariaDB Foundation, 7 October 2016, MariaDB Developer’s Meeting, Amsterdam • http://mariadb.org/about/ • “It is an enhanced, drop-in replacement for MySQL.”
  • 9. Licensing • MariaDB Server: GPLv2 only • MariaDB MaxScale: Business Source License • MariaDB ColumnStore: GPLv2 only • Backup & Restore, ColumnStore Kafka data adapter, MariaDB MaxScale CDC Data Adapter: Business Source License • MySQL has Community (GPLv2) and Enterprise releases
  • 10. Support • What is the support ecosystem and landscape like? • Training? • MySQL Certification (MariaDB Corporation started certification at M| 17, continued at M|18)
  • 11. Community Contributions • Oracle Contributor Agreement (OCA) • MariaDB Contributor Agreement (MCA) • BSD New • Who maintains the code? What is the state of community contributed code?
  • 12. Governance • MariaDB Corporation • MariaDB Foundation • Is there vendor lock-in in open source? • How many users are there, really?
  • 13. Releases MariaDB MySQL 5.1: 1 Feb 2010 5.1: 14 Nov 2008 5.2: 10 Nov 2010 5.3: 29 Feb 2012 5.5: 11 Apr 2012 5.5: 3 Dec 2010 5.6: 5 Feb 2013 10.0: 31 Mar 2014 10.1: 17 Oct 2015 5.7: 21 Oct 2015 10.2: 23 May 2017 8.0: 19 Apr 2018 10.3: 25 May 2018
  • 14. What’s documented? • https://mariadb.com/kb/en/the-mariadb-library/mariadb-vs-mysql- compatibility/ • (closed!?)Tracker bug: https://jira.mariadb.org/browse/MDEV-10392 • https://mariadb.com/kb/en/library/system-variable-differences- between-mariadb-and-mysql/ • https://mariadb.com/kb/en/library/incompatibilities-and-feature- differences-between-mariadb-102-and-mysql-57/
  • 16. GTID variances between MariaDB & MySQL • https://mariadb.com/kb/en/library/gtid/#the-domain-id
  • 17. MariaDB Replication • Default binlog format is now MIXED (ROW in MySQL) • Default replicate_annotate_row_events is ON • Binlog event compression - log_bin_compress • Time delayed replication (present in MySQL 5.6; arrived in MariaDB 10.2) • read_binlog_speed_limit - restricting the speed at which the slave reads the binlog from the master • DML only Flashback - rollback instances/databases/tables to an older snapshot (via Alibaba!)
  • 18. 5.1/5.2 • mysqld reads [mariadb] part of my.cnf for MariaDB Server only options • Binary-only storage engines won’t work without recompilation due do different THD structure (e.g. commercial engines like ScaleDB) • Extended slow query log statistics (microslow patch from Percona) • More memory utilised: Aria used to handle internal temporary tables, needs configuration • MariaDB only: table elimination
  • 19. 5.3 • Error numbers for MariaDB are at 1900+; MySQL has to deal: https:// bugs.mysql.com/bug.php?id=72062 • Microseconds arrived (MariaDB 10.1 follows the MySQL 5.6 format) • SHOW PROCESSLIST with progress reporting • New features: dynamic columns, virtual columns (5.7), HandlerSocket plugin, Cassandra storage engine (now deprecated) • Huge changes in optimiser + replication • https://mariadb.com/kb/en/library/optimizer-feature-comparison- matrix/
  • 21. 10.0
  • 22. 10.1
  • 23. 10.2
  • 24. 10.2
  • 25. 10.2
  • 27. JSON • 5.7 has a binary data type, MariaDB chooses not to implement it this way, choosing to not “violate the SQL standard” - https:// jira.mariadb.org/browse/MDEV-9144 • As fast, awaiting benchmarks - https://jira.mariadb.org/browse/ MDEV-13777
  • 28. X Protocol • MariaDB Server has no support for the MySQL X Protocol • This means you cannot use mysqlsh to access MariaDB Server
  • 29. Encryption • MySQL 5.7 and MariaDB Server 10.1+ implement encryption differently (one is fully tablespace encryption, the other is based on the Google patch for tablespace encryption in addition to having table encryption via Eperi) • MySQL 8 encrypts redo/undo logs via configuration options; temporary tablespace or binary log encryption does not exist (MariaDB supports binary log encryption, and temporary table encryption) • MySQL requires innodb_file_per_table • MySQL implementation works fully with Percona XtraDB Cluster • MariaDB Galera Cluster gcache is unencrypted - https://jira.mariadb.org/browse/MDEV-9639 • mysqlbinlog cannot read encrypted binary logs - https://jira.mariadb.org/browse/MDEV-8813 • workaround is use —read-from-remote-server as the server has access to the keys via the encryption plugin API. This adds load to the server! • Backups: MariaDB Backup for encrypted backups • Key management: Percona has Vault, MariaDB has an AWS Key Management Plugin, MySQL has several but they are part of the Enterprise release
  • 30. PERFORMANCE_SCHEMA • No sys schema by default (you can install the MySQL 5.6 version yourself) - https://jira.mariadb.org/browse/MDEV-9077 • No new PERFORMANCE_SCHEMA instrumentation from 5.7/8.0 - https://jira.mariadb.org/browse/MDEV-6114 • e.g. 52 rows in set (0.00 sec) vs. 87 rows in set (0.00 sec)
  • 31. Security • MySQL: caching_sha256_password • MariaDB: ed25519 password plugin • Needless to say the above are incompatible with each other • validate_password is on by default in MySQL 5.7+
  • 32. Other bits • MariaDB: SHOW EXPLAIN FOR <thread_id> • MySQL: EXPLAIN FOR CONNECTION <thread_id> • https://jira.mariadb.org/browse/MDEV-10000 • MySQL has SUPER READONLY, missing in MariaDB - https:// jira.mariadb.org/browse/MDEV-9458 • Replication crash-safety for non-GTID slaves - https://jira.mariadb.org/ browse/MDEV-8946 • Minimal/NOBLOB Binlog Row Image replication fails when tables from master have different PK in slave - https://jira.mariadb.org/browse/ MDEV-8398
  • 33. mysql.user table changes • MariaDB Server and MySQL differ here (not just by addition of roles) - mysql.user.password is just mysql.user.authentication_string • Password expiry? https://jira.mariadb.org/browse/MDEV-7597 • Password last changed? Lifetime? • ACCOUNT LOCK/UNLOCK • VALIDATE_PASSWORD_STRENGTH() SQL function doesn’t work in MariaDB Server
  • 35. More 5.7 • Optimiser trace (5.6): https://jira.mariadb.org/browse/MDEV-6111 • Optimizer hints - https://jira.mariadb.org/browse/MDEV-9078 • RENAME INDEX - https://jira.mariadb.org/browse/MDEV-7318 • Query rewriting? - https://jira.mariadb.org/browse/MDEV-5561 • GIS: GeoJSON functions? Geohash functions? • SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(11.11111 12.22222)’),2); [this works in MariaDB Server 10.3] • SELECT ST_GeoHash(180,0,10), ST_GeoHash(-180,-90,15); [still missing in MariaDB Server 10.3]
  • 36. Niggling usability bits • https://jira.mariadb.org/browse/MDEV-14448
  • 37. Key focus points for MariaDB 10.3 • Oracle compatibility • More storage engines • Temporal data (system versioned tables) • Plus some of the features from 10.2+10.1+10.0+5.5+5.3+5.2+5.1 that may not be in stock MySQL
  • 38. MariaDB storage engine offerings • MyRocks: for write-intensive workloads • SPIDER: for scalability and sharding • InnoDB: default for read/write operations (no longer Percona XtraDB since MariaDB 10.2) • ColumnStore: analytical purposes (not included in MariaDB Server 10.3 — still a separate download) • OQGRAPH: leaves algorithm • note: requires libJudy • PARTITION: updates to make SPIDER work better • Cassandra: still around, requires libthrift • CONNECT: for ETL operations • TokuDB: requires jemalloc and transparent hugepages to be never (not always)
  • 39. Storage Engines • InnoDB 5.7 is now included in MariaDB Server 10.2 (there is no longer Percona XtraDB since 10.2) • you need to remove XtraDB related options in my.cnf or the server won’t start • https://lists.launchpad.net/maria-discuss/msg04708.html • More testing of InnoDB required, thank you community! • Test cases still need merging - https://jira.mariadb.org/browse/MDEV-13626 • Slow starts - https://jira.mariadb.org/browse/MDEV-13869 / https:// lists.launchpad.net/maria-discuss/msg04922.html • Hangs on startup - https://jira.mariadb.org/browse/MDEV-9843 • Persistent statistics - https://lists.launchpad.net/maria-discuss/msg04937.html
  • 40. MyRocks • RocksDB (Facebook) is a fork of LevelDB (Google). MyRocks is the interface to it from MySQL/MariaDB • Write optimised • Focus on the endurance of flash devices to gain better lifetime (10x less write amplification) • Better compression than InnoDB (at least 2x) • Ability to load data fast, avoiding compaction overheads • Read-free replication (no random reads for updating secondary keys, only for unique indexes; RFR does away with it all, with row-based binlog) • Recommended read: https://mariadb.com/kb/en/library/differences-between- myrocks-variants/
  • 41. SPIDER • Transparent sharding and re-sharding via SQL • Partition by range/key/hash/list • vertical partitioning engine, allows partition by columns • Condition pushdown to the storage engine layer • JOIN, GROUP BY done internally (on the data nodes/shards) • direct updates/deletes (pushdown to data nodes) • direct aggregates (sums, min, max, avg through partition engine) • Partition improvements: full-text support, multi-range read (MRR) • Read the docs, please! https://mariadb.com/kb/en/library/spider-storage- engine-overview/
  • 42. Compression • Row compression (ROW_FORMAT=COMPRESSED), to page compression (PAGE_COMPRESSED=1), now to column compression • Bonus? Storage engine independent CREATE TABLE `users` ( `id` int(11) NOT NULL, `name` varchar(100) DEFAULT NULL, `blurb` text /*!100301 COMPRESSED*/ DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
  • 43. Compression show status like 'column_%'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | Column_compressions | 1 | | Column_decompressions | 0 | +-----------------------+-------+
  • 44. Invisible columns CREATE TABLE `user` ( `id` int(11) NOT NULL, `name` varchar(100) DEFAULT NULL, `secret` varchar(10) INVISIBLE DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 insert into user (id,name,secret) values ("1","colin","yes"); select * from user; +----+-------+ | id | name | +----+-------+ | 1 | colin | +——+-------+ select id,name,secret from user; +----+-------+--------+ | id | name | secret | +----+-------+--------+ | 1 | colin | yes | +----+-------+--------+
  • 45. System versioned tables • SQL 2011 standard. Stores history of all changes. • Can alter a table to enable/disable/remove system versioned data • Queries? • AS OF to select data as of a point in time • BETWEEN .. AND to select data between two points in time • Partition data BY SYSTEM_TIME • Just ALTER .. ADD SYSTEM VERSIONING or create a table WITH SYSTEM VERSIONING
  • 46. System versioned tables create table employees (name varchar(10), salary int, department varchar(10)) with system versioning; insert into employees values ("colin", 1000, “mktg"); update employees set salary=10000 where name=“colin"; update employees set department="eng" where name=“colin" select * from employees where name="colin"; +-------+--------+------+ | name | salary | dept | +-------+--------+------+ | colin | 10000 | eng | +———+--------+------+ select *, ROW_START, ROW_END from employees for SYSTEM_TIME ALL; +-------+--------+------------ +---------------------------- +----------------------------+ | name | salary | department | ROW_START | ROW_END | +-------+--------+------------ +---------------------------- +----------------------------+ | colin | 10000 | eng | 2018-06-26 13:00:53.772241 | 2038-01-19 03:14:07.999999 | | colin | 1000 | mktg | 2018-06-26 13:00:03.656662 | 2018-06-26 13:00:24.251594 | | colin | 10000 | mktg | 2018-06-26 13:00:24.251594 | 2018-06-26 13:00:53.772241 | +-------+--------+------------ +---------------------------- +----------------------------+
  • 47. AS OF example SELECT * FROM employees FOR SYSTEM_TIME AS OF TIMESTAMP'2018-06-26 13:00:24'; +-------+--------+------------+ | name | salary | department | +-------+--------+------------+ | colin | 1000 | mktg | +-------+--------+------------+
  • 48. Oracle compatibility - Sequences • Sequences to create a sequence of numeric values • Not to be confused with replacing AUTO_INCREMENT, is an alternative to creating unique identifiers • With a sequence, you can compute the last number created by all existing sequences, whereas AUTO_INCREMENT can only compute its own last number created
  • 49. Sequences create sequence seq start with 10 increment by 10; select nextval(seq); +--------------+ | nextval(seq) | +--------------+ | 10 | +--------------+ select nextval(seq); +--------------+ | nextval(seq) | +--------------+ | 20 | +--------------+ select nextval(seq); +--------------+ | nextval(seq) | +--------------+ | 30 | +--------------+ select lastval(seq); +--------------+ | lastval(seq) | +--------------+ | 30 | +--------------+ select previous value for seq; +------------------------ + | previous value for seq | +------------------------ + | 30 | +------------------------ +
  • 50. Oracle PL/SQL • PL/SQL compatibility parser added for easier migration from Oracle to MariaDB • sql_mode=‘oracle’ • Data types (have synonyms in MariaDB): VARCHAR2 (VARCHAR), NUMBER (DECIMAL), DATE (DATETIME), RAW (VARBINARY), BLOB (LONGBLOB), CLOB (LONGTEXT) • CURRVAL, NEXTVAL • EXECUTE IMMEDIATE • Existing stored procedures, triggers • ROW datatype for stored routines • Cursors with parameters • Packages • https://mariadb.com/kb/en/library/sql_modeoracle-from-mariadb-103/
  • 51. Other bits • INTERSECT and EXCEPT to UNION • Stored aggregate functions - functions that are computed over a sequence of rows and return one result for the sequence of rows • see https://jira.mariadb.org/browse/MDEV-16315 • Idle transaction timeouts • idle_transaction_timeout, idle_readonly_transaction_timeout, idle_write_transaction_timeout
  • 52. What about the rest? • Instant ADD COLUMN is in MySQL 8 and MariaDB Server 10.3 • PROXY protocol support has been in Percona Server for MySQL 5.6/5.7, but is new to MariaDB Server and missing in MySQL 8.0
  • 53. Using MySQL 8.0? Some features missing in MariaDB Server 10.3 • JSON is not stored as a binary data type • GTIDs are different in MariaDB (e.g. no GTID in OK packet) • No X Protocol, mysqlsh support • No group replication • PERFORMANCE_SCHEMA from MySQL 5.6 • No caching_sha256_password (ed25519) • mysql.user.password now is mysql.user.authentication_string • No password expiry, last changed, etc. however there is cracklib_password_check • No optimiser hints, optimiser trace • No SET PERSIST • No Native data dictionary in MySQL 8 (atomic, crash-safe DDLs, faster INFORMATION_SCHEMA, no more MySQL system tables) • Not as fast utf8mb4 • No persistent auto increment • No automatically managed UNDO tablespace • No InnoDB self-tuning (since InnoDB is from 5.7) • No invisible indexes • No TempTable Storage engine • No backup locks • No InnoDB native partitioning • No resource groups
  • 55. Using MariaDB Server 10.3? MySQL 8.0 community edition is missing these features • More storage engines • MyRocks, TokuDB, CONNECT, SPIDER. MyISAM user? Segmented key caches will help • Threadpool • PAM authentication • GSSAPI authentication (Kerberos, Active Directory) • Optimistic parallel replication • ANALYZE <statement> • cracklib_password_check • Oracle compatibility • Temporal data (system versioned tables) • PAM/GSSAPI/SSPI authentication • AWS Key Management Plugin • Table elimination • User statistics • Dynamic columns • Invisible columns • Query cache
  • 56. When to use MySQL? • http://www.thecompletelistoffeatures.com/ (which is MySQL 5.7 based, but really, many of those features may not quite be in MariaDB Server 10.3 even) • Performance…: http://dimitrik.free.fr/blog/index.html • Think about a MySQL InnoDB Cluster, based on group replication that is configured in the MySQL Shell, with the MySQL Router?
  • 57. Don’t forget: http://features.today/ • signup at http://features.today/ for updated information of what is available in each MySQL or MariaDB Server or Percona Server for MySQL release • slides will be sent to the mailing list
  • 58. Thank you! Colin Charles [email protected] / [email protected] http://bytebot.net/blog | @bytebot on twitter slides: slideshare.net/bytebot