SlideShare a Scribd company logo
How to Migrate from MySQL to MariaDB
without Tears
September 14-16, 2020
Sveta Smirnova
• MySQL Support Engineer
• Author of
• MySQL Troubleshooting
• JSON UDF functions
•
FILTER clause for MySQL
• Speaker
• Percona Live, OOW, Fosdem,
DevConf, HighLoad...
Sveta Smirnova
2
•Initial Setup
•Authentication
•Replication
•SQL Differences
•Functional Differences
•Diagnostics
Table of Contents
3
• Started as fork of MySQL
MariaDB
4
• Started as fork of MySQL
• Independent product
MariaDB
4
• Started as fork of MySQL
• Independent product
• Hundreds of unique features
MariaDB
4
• Started as fork of MySQL
• Independent product
• Hundreds of unique features
• Important improvements are backported
•
from MySQL
MariaDB
4
Initial Setup
• Check version compatibility
MySQL MariaDB
5.1 5.1, 5.2, 5.3
5.5 5.5
5.6 10.0, 10.1
5.7 10.2, 10.3, 10.4, 10.5
8.0 -
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
• Install MariaDB
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
• Install MariaDB
•
Point MariaDB to MySQL datadir
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
• Install MariaDB
•
Point MariaDB to MySQL datadir
•
Start MariaDB
Drop-in Replacement
6
• Check version compatibility
• Stop MySQL Server
• Install MariaDB
•
Point MariaDB to MySQL datadir
•
Start MariaDB
•
Run mariadb-upgrade
Drop-in Replacement
6
• Before upgrade
$ ls -w100 data/mysql/
columns_priv.frm gtid_executed.ibd proc.MYD slow_log.CSV
columns_priv.MYD help_category.frm proc.MYI slow_log.frm
columns_priv.MYI help_category.ibd procs_priv.frm tables_priv.frm
db.frm help_keyword.frm procs_priv.MYD tables_priv.MYD
db.MYD help_keyword.ibd procs_priv.MYI tables_priv.MYI
db.MYI help_relation.frm proxies_priv.frm time_zone.frm
db.opt help_relation.ibd proxies_priv.MYD time_zone.ibd
engine_cost.frm help_topic.frm proxies_priv.MYI time_zone_leap_second.frm
engine_cost.ibd help_topic.ibd server_cost.frm time_zone_leap_second.ibd
event.frm innodb_index_stats.frm server_cost.ibd time_zone_name.frm
event.MYD innodb_index_stats.ibd servers.frm time_zone_name.ibd
event.MYI innodb_table_stats.frm servers.ibd time_zone_transition.frm
func.frm innodb_table_stats.ibd slave_master_info.frm time_zone_transition.ibd
...
System Database Changes
7
• After upgrade
$ ls -w100 data/mysql/
columns_priv.frm gtid_executed.ibd proc.frm slow_log.frm
columns_priv.MAD gtid_slave_pos.frm proc.MAD tables_priv.frm
columns_priv.MAI gtid_slave_pos.ibd proc.MAI tables_priv.MAD
column_stats.frm help_category.frm procs_priv.frm tables_priv.MAI
column_stats.MAD help_category.MAD procs_priv.MAD table_stats.frm
column_stats.MAI help_category.MAI procs_priv.MAI table_stats.MAD
db.frm help_keyword.frm proxies_priv.frm table_stats.MAI
db.MAD help_keyword.MAD proxies_priv.MAD time_zone.frm
db.MAI help_keyword.MAI proxies_priv.MAI time_zone_leap_second.frm
db.opt help_relation.frm roles_mapping.frm time_zone_leap_second.MAD
engine_cost.frm help_relation.MAD roles_mapping.MAD time_zone_leap_second.MAI
engine_cost.ibd help_relation.MAI roles_mapping.MAI time_zone.MAD
event.frm help_topic.frm server_cost.frm time_zone.MAI
...
System Database Changes
7
• Specific MariaDB features
• • Storage engines
•
SQL statements
• Options
• Just use them
Differences
8
• Specific MariaDB features
• Specific MySQL features
• • SQL statements
•
Plugins
• They are missed
Differences
8
• Specific MariaDB features
• Specific MySQL features
• Features, present in both products
• • Working differently
•
Our focus today
Differences
8
Authentication
• MySQL
•
–initialize
• mysql_install_db deprecated, removed in 8.0
Initial Setup
10
• MySQL
•
–initialize
• mysql_install_db deprecated, removed in 8.0
• MariaDB
•
Only mysql_install_db
Initial Setup
10
• Supported plugins
•
MySQL
Native
Caching SHA-2 - Default in 8.0
SHA-256
Cleartext
No-login
Socket Peer-Credential
Authentication Plugins
11
• Supported plugins
•
MariaDB
mysql_native_password
mysql_old_password
SHA-256 - Client only!
ed25519
GSSAPI
PAM
Named Pipe
Unix Socket
Authentication Plugins
11
• Supported plugins
• User management SQL is same
Authentication Plugins
11
• Supported plugins
• User management SQL is same
• MariaDB supports multiple plugins per account
Authentication Plugins
11
• MySQL
•
validate_password plugin
Deprecated!
•
validate_password component
mysql> SHOW VARIABLES LIKE ’validate_password%’;
+––––––––––––––––––––––––––––––––––––––+––––––––+
| Variable_name | Value |
+––––––––––––––––––––––––––––––––––––––+––––––––+
| validate_password_check_user_name | ON |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+––––––––––––––––––––––––––––––––––––––+––––––––+
Password Validation
12
• MariaDB
• Password Validation Plugin API
• Two plugins
simple_password_check
MariaDB [performance_schema]> show variables like ’simple_password_check%’;
+–––––––––––––––––––––––––––––––––––––––––+–––––––+
| Variable_name | Value |
+–––––––––––––––––––––––––––––––––––––––––+–––––––+
| simple_password_check_digits | 1 |
| simple_password_check_letters_same_case | 1 |
| simple_password_check_minimal_length | 8 |
| simple_password_check_other_characters | 1 |
+–––––––––––––––––––––––––––––––––––––––––+–––––––+
4 rows in set (0.001 sec)
Password Validation
12
• MariaDB
• Password Validation Plugin API
• Two plugins
cracklib_password_check
MariaDB [performance_schema]> show variables like ’cracklib%’;
+––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+
| Variable_name | Value |
+––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+
| cracklib_password_check_dictionary | /var/cache/cracklib/cracklib_dict |
+––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+
1 row in set (0.001 sec)
Password Validation
12
• MySQL
• MariaDB
• Password expiration works same way
Password Validation
12
• Syntax is same
Roles
13
• Syntax is same
• MySQL
•
Details are in Information Schema
ADMINISTRABLE_ROLE_AUTHORIZATIONS
APPLICABLE_ROLES
ENABLED_ROLES
ROLE_COLUMN_GRANTS
ROLE_ROUTINE_GRANTS
ROLE_TABLE_GRANTS
Roles
13
• Syntax is same
• MySQL
• Stored in mysql
user
role_edges
mysql> select * from mysql.role_edgesG
*************************** 1. row ***************************
FROM_HOST: %
FROM_USER: my_role
TO_HOST: %
TO_USER: sveta
WITH_ADMIN_OPTION: N
1 row in set (0.00 sec)
default_roles
Roles
13
• Syntax is same
• MariaDB
• Details are in Information Schema
APPLICABLE_ROLES
ENABLED_ROLES
Roles
13
• Syntax is same
• MariaDB• Stored in mysql
user
roles_mapping
MariaDB [information_schema]> select * from mysql.roles_mappingG
*************************** 1. row ***************************
Host: localhost
User: root
Role: my_role
Admin_option: Y
*************************** 2. row ***************************
Host: %
User: sveta
Role: my_role
Admin_option: N
2 rows in set (0.001 sec)
Roles
13
• Syntax is same
• MariaDB
•
The role automatically available for the grantor
Roles
13
Replication
• Compatible
• Can work any way around
No GTIDs
15
• Compatible
• Can work any way around
• Unless data types are incompatible
•
Before 8.0!
No GTIDs
15
• Implementation is different
• MariaDB understands MySQL GTIDs
• MySQL does not accept MariaDB GTIDs
•
Only replication from MySQL is possible!
GTIDs
16
• Different concurrency control
Multi-threaded Replication
17
• Different concurrency control
• MySQL: slave_parallel_workers
Multi-threaded Replication
17
• Different concurrency control
• MySQL: slave_parallel_workers
• MySQL: slave_parallel_type=DATABASE | LOGICAL_CLOCK
• MYSQL: binlog_transaction_dependency_tracking =
COMMIT_ORDER | WRITESET | WRITESET_SESSION
Multi-threaded Replication
17
• Different concurrency control
•
MariaDB: slave_parallel_threads
Multi-threaded Replication
17
• Different concurrency control
•
MariaDB: slave_parallel_threads
• MariaDB: slave_parallel_max_queued
Multi-threaded Replication
17
• Different concurrency control
•
MariaDB: slave_parallel_threads
• MariaDB: slave_parallel_max_queued
• MariaDB: slave_domain_parallel_threads
Multi-threaded Replication
17
• Different concurrency control
•
MariaDB: slave_parallel_threads
• MariaDB: slave_parallel_max_queued
• MariaDB: slave_domain_parallel_threads
• MariaDB: slave_parallel_mode=optimistic | conservative |
aggressive | minimal | none
Multi-threaded Replication
17
• Different syntax for the source name
• CHANGE MASTER
• MySQL
CHANGE MASTER TO MASTER_HOST=’source1’ FOR CHANNEL ’source_1’;
• MariaDB
CHANGE MASTER ’source_1’ TO MASTER_HOST=’source1’;
Multi-source Replication
18
• Different syntax for the source name
• Slave status
• MySQL
SHOW SLAVE STATUS FOR CHANNEL ’source1’;
SELECT * FROM performance_schema.replication_connection_status WHERE
CHANNEL_NAME=’source_1’;
Default is for all channels
• MariaDB
SHOW SLAVE ’source_1’ STATUS
SHOW ALL SLAVES STATUS
Default is default connection
Multi-source Replication
18
SQL Differences
• MySQL
mysql> explain analyze select * from ol where thread_id=10432 and site_id != 9939
-> order by id limit 3G
*************************** 1. row ***************************
EXPLAIN: -> Limit: 3 row(s) (actual time=364.792..364.792 rows=0 loops=1)
-> Filter: ((ol.thread_id = 10432) and (ol.site_id <> 9939)) (cost=0.06 rows=3)
(actual time=364.789..364.789 rows=0 loops=1)
-> Index scan on ol using PRIMARY (cost=0.06 rows=33)
(actual time=0.417..337.585 rows=100000 loops=1)
ANALYZE
20
• MariaDB
MariaDB [test]> analyze select * from ol
-> where thread_id=10432 and site_id != 9939 order by id limit 3G
*************************** 1. row ***************************
...
type: index
possible_keys: thread_id
key: PRIMARY
key_len: 4
ref: const
rows: 100000
r_rows: 100000.00
filtered: 8.96
r_filtered: 0.00
Extra: Using where
ANALYZE
20
• MySQL
mysql> show processlistG
*************************** 1. row ***************************
Id: 2
User: root
Host: localhost:41352
db: test
Command: Query
Time: 37
State: User sleep
Info: select sleep(100)
Rows_sent: 0
Rows_examined: 0
...
EXPLAIN for Running Thread
21
• MySQL
mysql> explain for connection 2G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: NULL
partitions: NULL
type: NULL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: NULL
filtered: NULL
Extra: No tables used
1 row in set (0.00 sec)
EXPLAIN for Running Thread
21
• MariaDB
MariaDB [(none)]> show processlistG
*************************** 1. row ***************************
Id: 3
User: root
Host: localhost:51126
db: test
Command: Query
Time: 2
State: User sleep
Info: select sleep(30)
Progress: 0.000
EXPLAIN for Running Thread
21
• MariaDB
MariaDB [(none)]> show explain for 3G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: NULL
type: NULL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: NULL
Extra: No tables used
1 row in set, 1 warning (25.718 sec)
EXPLAIN for Running Thread
21
• MariaDB
MariaDB [(none)]> show processlistG
*************************** 1. row ***************************
Id: 3
User: root
Host: localhost:51126
db: test
Command: Query
Time: 2
State: User sleep
Info: select sleep(40)
Progress: 0.000
...
MariaDB [(none)]> show explain for 3G
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
EXPLAIN for Running Thread
21
• MySQL
•
Only histograms
• Collected on demand
Histograms and Table-Independent Statistics
22
• MySQL
•
Only histograms
• Collected on demand
• MariaDB
•
Histograms collected and used by default
• Other
Collected on demand
Used by default
Histograms and Table-Independent Statistics
22
Functional Differences
• MySQL
• Special data type
• Functions, not available in MariaDB
JSON_OVERLAPS
JSON_PRETTY
JSON_STORAGE_FREE
JSON_STORAGE_SIZE
JSON_TABLE
JSON
24
• MySQL
• MariaDB
• Data type JSON mapped to LONGTEXT
CHECK (JSON_VALID(...)) automatically enabled if JSON alias is used
• Functions, not available in MySQL
JSON_COMPACT
JSON_DETAILED
JSON_EXISTS
JSON_LOOSE
JSON_QUERY
JSON_VALUE
JSON
24
• MySQL
• MariaDB
• Replication
• Statement-based works fine
• Row-based
Convert MySQL JSON data type to LONGTEXT
JSON
24
• "SQL with Geometry Types" of OGC
•
Both MySQL and MariaDB
• Not all MySQL GIS functions are in MariaDB
GIS
25
• MySQL
•
Full Unicode support since 8.0.4
ICU library
• Extended regex syntax
Regular Expressions
26
• MySQL
•
Full Unicode support since 8.0.4
ICU library
• Extended regex syntax
• MariaDB
•
Full Unicode support since 10.5
• PCRE syntax
Regular Expressions
26
• MySQL
•
Full Unicode support since 8.0.4
ICU library
• Extended regex syntax
• MariaDB
•
Full Unicode support since 10.5
• PCRE syntax
• REGEXP_LIKE only in MySQL
Regular Expressions
26
• Character set gb18030 only in MySQL
• MariaDB has more collations
• MariaDB supports not all MySQL collations
Localization
27
Diagnostics
• MySQL
•
In Performance Schema
mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED
-> FROM performance_schema.events_stages_current where event_name like ’%alter%’;
+––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+
| EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED |
+––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+
| stage/innodb/alter table (read PK and internal sort) | 488 | 8512 |
...
| stage/innodb/alter table (read PK and internal sort) | 9396 | 9396 |
+––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+
1 row in set (0.00 sec)
Progress for ALTER TABLE
29
• MariaDB
•
In Information Schema
MariaDB [information_schema]> select stage, max_stage, progress
-> from processlist where info like ’alter table%’;
+–––––––+–––––––––––+––––––––––+
| stage | max_stage | progress |
+–––––––+–––––––––––+––––––––––+
| 1 | 2 | 46.881 |
...
| 1 | 2 | 68.103 |
...
| 1 | 2 | 83.452 |
+–––––––+–––––––––––+––––––––––+
1 row in set (0.001 sec)
Progress for ALTER TABLE
29
• MariaDB
• In SHOW PROCESSLIST
MariaDB [information_schema]> show processlistG
*************************** 1. row ***************************
Id: 5
User: root
Host: localhost:53616
db: employees
Command: Query
Time: 4
State: copy to tmp table
Info: alter table salaries engine=innodb
Progress: 31.510
Progress for ALTER TABLE
29
• MariaDB
• In the supporting client
MariaDB [employees]> alter table salaries engine=innodb;
Stage: 1 of 2 ’copy to tmp table’ 73.4% of stage done
Progress for ALTER TABLE
29
• Tables, which MariaDB misses
• Locks
data_lock_waits
data_locks
MariaDB: in Information Schema SE_*
Performance Schema
30
• Tables, which MariaDB misses
• Variables
global_variables - MariaDB: in I_S
session_variables - MariaDB: in I_S
variables_by_thread - MariaDB: do not exist
variables_info - MariaDB: I_S.SYSTEM_VARIABLES
Performance Schema
30
• Tables, which MariaDB misses
• Replication
replication_applier_filters
replication_applier_global_filters
replication_applier_status_by_worker
replication_connection_status
MariaDB: SHOW SLAVE STATUS
Performance Schema
30
• Tables, which MariaDB misses
•
Errors
events_errors_summary_by_account_by_error
events_errors_summary_by_host_by_error
events_errors_summary_by_thread_by_error
events_errors_summary_by_user_by_error
events_errors_summary_global_by_error
Performance Schema
30
• Tables, which MariaDB misses
• Statements histograms
events_statements_histogram_by_digest
events_statements_histogram_global
Performance Schema
30
• Tables, which MariaDB misses
• User-defined functions
user_defined_functions
MariaDB: mysql.func
Performance Schema
30
• Tables, which MariaDB misses
• Binary log status and LSN
log_status
MariaDB: SHOW MASTER STATUS and SHOW ENGINE INNODB STATUS
Performance Schema
30
• Initial upgrade is straightforward
• Feature differences are easily solvable
• MariaDB has options which simplify migration
•
Migrate to explore all MariaDB advantages!
Conclusions
31
•
Migrating to MariaDB from MySQL
MariaDB vs MySQL: Features
Function Difference
Replication Compatibility Matrix
Optimizer Features Comparison Matrix
Spatial Support Matrix
More Details
32
www.slideshare.net/SvetaSmirnova
twitter.com/svetsmirnova
github.com/svetasmirnova
Thank you!
33
DATABASE PERFORMANCE
MATTERS
Ad

More Related Content

What's hot (20)

MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
Sveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
Sveta Smirnova
 
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
Sveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
Sveta Smirnova
 
Why MySQL Replication Fails, and How to Get it Back
Why MySQL Replication Fails, and How to Get it BackWhy MySQL Replication Fails, and How to Get it Back
Why MySQL Replication Fails, and How to Get it Back
Sveta Smirnova
 
Performance Schema in Action: demo
Performance Schema in Action: demoPerformance Schema in Action: demo
Performance Schema in Action: demo
Sveta Smirnova
 
Managing MariaDB Server operations with Percona Toolkit
Managing MariaDB Server operations with Percona ToolkitManaging MariaDB Server operations with Percona Toolkit
Managing MariaDB Server operations with Percona Toolkit
Sveta Smirnova
 
Lessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting ReplicationLessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting Replication
Sveta Smirnova
 
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationPercona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replication
mysqlops
 
Fosdem2012 replication-features-of-2011
Fosdem2012 replication-features-of-2011Fosdem2012 replication-features-of-2011
Fosdem2012 replication-features-of-2011
Sergey Petrunya
 
Preparse Query Rewrite Plugins
Preparse Query Rewrite PluginsPreparse Query Rewrite Plugins
Preparse Query Rewrite Plugins
Sveta Smirnova
 
MySQL Replication Troubleshooting for Oracle DBAs
MySQL Replication Troubleshooting for Oracle DBAsMySQL Replication Troubleshooting for Oracle DBAs
MySQL Replication Troubleshooting for Oracle DBAs
Sveta Smirnova
 
Easy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and TroubleshootingEasy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and Troubleshooting
Bob Burgess
 
MongoDB Engines: Demystified
MongoDB Engines: DemystifiedMongoDB Engines: Demystified
MongoDB Engines: Demystified
Sveta Smirnova
 
MySQL Performance Tuning Variables
MySQL Performance Tuning VariablesMySQL Performance Tuning Variables
MySQL Performance Tuning Variables
FromDual GmbH
 
MySQL 8 for Developers
MySQL 8 for DevelopersMySQL 8 for Developers
MySQL 8 for Developers
Georgi Sotirov
 
MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527
Saewoong Lee
 
MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgrade
Abel Flórez
 
Mini Session - Using GDB for Profiling
Mini Session - Using GDB for ProfilingMini Session - Using GDB for Profiling
Mini Session - Using GDB for Profiling
Enkitec
 
My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2
Morgan Tocker
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
Sveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
Sveta Smirnova
 
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
Sveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
Sveta Smirnova
 
Why MySQL Replication Fails, and How to Get it Back
Why MySQL Replication Fails, and How to Get it BackWhy MySQL Replication Fails, and How to Get it Back
Why MySQL Replication Fails, and How to Get it Back
Sveta Smirnova
 
Performance Schema in Action: demo
Performance Schema in Action: demoPerformance Schema in Action: demo
Performance Schema in Action: demo
Sveta Smirnova
 
Managing MariaDB Server operations with Percona Toolkit
Managing MariaDB Server operations with Percona ToolkitManaging MariaDB Server operations with Percona Toolkit
Managing MariaDB Server operations with Percona Toolkit
Sveta Smirnova
 
Lessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting ReplicationLessons Learned: Troubleshooting Replication
Lessons Learned: Troubleshooting Replication
Sveta Smirnova
 
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replicationPercona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: introduction-to-mysql-replication
mysqlops
 
Fosdem2012 replication-features-of-2011
Fosdem2012 replication-features-of-2011Fosdem2012 replication-features-of-2011
Fosdem2012 replication-features-of-2011
Sergey Petrunya
 
Preparse Query Rewrite Plugins
Preparse Query Rewrite PluginsPreparse Query Rewrite Plugins
Preparse Query Rewrite Plugins
Sveta Smirnova
 
MySQL Replication Troubleshooting for Oracle DBAs
MySQL Replication Troubleshooting for Oracle DBAsMySQL Replication Troubleshooting for Oracle DBAs
MySQL Replication Troubleshooting for Oracle DBAs
Sveta Smirnova
 
Easy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and TroubleshootingEasy MySQL Replication Setup and Troubleshooting
Easy MySQL Replication Setup and Troubleshooting
Bob Burgess
 
MongoDB Engines: Demystified
MongoDB Engines: DemystifiedMongoDB Engines: Demystified
MongoDB Engines: Demystified
Sveta Smirnova
 
MySQL Performance Tuning Variables
MySQL Performance Tuning VariablesMySQL Performance Tuning Variables
MySQL Performance Tuning Variables
FromDual GmbH
 
MySQL 8 for Developers
MySQL 8 for DevelopersMySQL 8 for Developers
MySQL 8 for Developers
Georgi Sotirov
 
MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527MySQL 5.7 innodb_enhance_partii_20160527
MySQL 5.7 innodb_enhance_partii_20160527
Saewoong Lee
 
MySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgradeMySQL 5.7 - What's new and How to upgrade
MySQL 5.7 - What's new and How to upgrade
Abel Flórez
 
Mini Session - Using GDB for Profiling
Mini Session - Using GDB for ProfilingMini Session - Using GDB for Profiling
Mini Session - Using GDB for Profiling
Enkitec
 
My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2My sql 5.7-upcoming-changes-v2
My sql 5.7-upcoming-changes-v2
Morgan Tocker
 

Similar to How to migrate from MySQL to MariaDB without tears (20)

MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012
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
 
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
 
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
 
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: The 2012 Edition
MariaDB: The 2012 EditionMariaDB: The 2012 Edition
MariaDB: The 2012 Edition
Colin Charles
 
MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014
Colin Charles
 
Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0
Colin Charles
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
Wagner Bianchi
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera Cluster
Abdul Manaf
 
Maria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High AvailabilityMaria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High Availability
OSSCube
 
DPC Tutorial
DPC TutorialDPC Tutorial
DPC Tutorial
Ligaya Turmelle
 
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
 
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.
 
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
 
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
 
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
 
ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQL
Mydbops
 
Höchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und OptimierungHöchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und Optimierung
MariaDB plc
 
ScaleDB Technical Presentation
ScaleDB Technical PresentationScaleDB Technical Presentation
ScaleDB Technical Presentation
Ivan Zoratti
 
MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012
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
 
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
 
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
 
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: The 2012 Edition
MariaDB: The 2012 EditionMariaDB: The 2012 Edition
MariaDB: The 2012 Edition
Colin Charles
 
MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014MariaDB - a MySQL Replacement #SELF2014
MariaDB - a MySQL Replacement #SELF2014
Colin Charles
 
Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0
Colin Charles
 
NY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with MaxscaleNY Meetup: Scaling MariaDB with Maxscale
NY Meetup: Scaling MariaDB with Maxscale
Wagner Bianchi
 
MariaDB Galera Cluster
MariaDB Galera ClusterMariaDB Galera Cluster
MariaDB Galera Cluster
Abdul Manaf
 
Maria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High AvailabilityMaria DB Galera Cluster for High Availability
Maria DB Galera Cluster for High Availability
OSSCube
 
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
 
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.
 
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
 
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
 
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
 
ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQL
Mydbops
 
Höchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und OptimierungHöchste Datenbankleistung durch Anpassung und Optimierung
Höchste Datenbankleistung durch Anpassung und Optimierung
MariaDB plc
 
ScaleDB Technical Presentation
ScaleDB Technical PresentationScaleDB Technical Presentation
ScaleDB Technical Presentation
Ivan Zoratti
 
Ad

More from Sveta Smirnova (19)

MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
Sveta Smirnova
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and Monitoring
Sveta Smirnova
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to Have
Sveta Smirnova
 
MySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersMySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for Developers
Sveta Smirnova
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
Sveta Smirnova
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации багов
Sveta Smirnova
 
MySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessMySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your Business
Sveta Smirnova
 
Производительность MySQL для DevOps
 Производительность MySQL для DevOps Производительность MySQL для DevOps
Производительность MySQL для DevOps
Sveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
Sveta Smirnova
 
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaСовременному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Sveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
 How Safe is Asynchronous Master-Master Setup? How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
Sveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?
Sveta Smirnova
 
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
Sveta Smirnova
 
Что нужно знать о трёх топовых фичах MySQL
Что нужно знать  о трёх топовых фичах  MySQLЧто нужно знать  о трёх топовых фичах  MySQL
Что нужно знать о трёх топовых фичах MySQL
Sveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?
Sveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
Sveta Smirnova
 
Optimizer Histograms: When they Help and When Do Not?
Optimizer Histograms: When they Help and When Do Not?Optimizer Histograms: When they Help and When Do Not?
Optimizer Histograms: When they Help and When Do Not?
Sveta Smirnova
 
Billion Goods in Few Categories: how Histograms Save a Life?
Billion Goods in Few Categories: how Histograms Save a Life?Billion Goods in Few Categories: how Histograms Save a Life?
Billion Goods in Few Categories: how Histograms Save a Life?
Sveta Smirnova
 
MySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete TutorialMySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete Tutorial
Sveta Smirnova
 
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
MySQL 2024: Зачем переходить на MySQL 8, если в 5.х всё устраивает?
Sveta Smirnova
 
Database in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and MonitoringDatabase in Kubernetes: Diagnostics and Monitoring
Database in Kubernetes: Diagnostics and Monitoring
Sveta Smirnova
 
MySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to HaveMySQL Database Monitoring: Must, Good and Nice to Have
MySQL Database Monitoring: Must, Good and Nice to Have
Sveta Smirnova
 
MySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for DevelopersMySQL Cookbook: Recipes for Developers
MySQL Cookbook: Recipes for Developers
Sveta Smirnova
 
MySQL Performance for DevOps
MySQL Performance for DevOpsMySQL Performance for DevOps
MySQL Performance for DevOps
Sveta Smirnova
 
MySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации баговMySQL Test Framework для поддержки клиентов и верификации багов
MySQL Test Framework для поддержки клиентов и верификации багов
Sveta Smirnova
 
MySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your BusinessMySQL Cookbook: Recipes for Your Business
MySQL Cookbook: Recipes for Your Business
Sveta Smirnova
 
Производительность MySQL для DevOps
 Производительность MySQL для DevOps Производительность MySQL для DevOps
Производительность MySQL для DevOps
Sveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
Sveta Smirnova
 
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaСовременному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Современному хайлоду - современные решения: MySQL 8.0 и улучшения Percona
Sveta Smirnova
 
How Safe is Asynchronous Master-Master Setup?
 How Safe is Asynchronous Master-Master Setup? How Safe is Asynchronous Master-Master Setup?
How Safe is Asynchronous Master-Master Setup?
Sveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?
Sveta Smirnova
 
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
A Billion Goods in a Few Categories: When Optimizer Histograms Help and When ...
Sveta Smirnova
 
Что нужно знать о трёх топовых фичах MySQL
Что нужно знать  о трёх топовых фичах  MySQLЧто нужно знать  о трёх топовых фичах  MySQL
Что нужно знать о трёх топовых фичах MySQL
Sveta Smirnova
 
Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?Billion Goods in Few Categories: How Histograms Save a Life?
Billion Goods in Few Categories: How Histograms Save a Life?
Sveta Smirnova
 
MySQL Performance Schema in Action
MySQL Performance Schema in ActionMySQL Performance Schema in Action
MySQL Performance Schema in Action
Sveta Smirnova
 
Optimizer Histograms: When they Help and When Do Not?
Optimizer Histograms: When they Help and When Do Not?Optimizer Histograms: When they Help and When Do Not?
Optimizer Histograms: When they Help and When Do Not?
Sveta Smirnova
 
Billion Goods in Few Categories: how Histograms Save a Life?
Billion Goods in Few Categories: how Histograms Save a Life?Billion Goods in Few Categories: how Histograms Save a Life?
Billion Goods in Few Categories: how Histograms Save a Life?
Sveta Smirnova
 
MySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete TutorialMySQL Performance Schema in Action: the Complete Tutorial
MySQL Performance Schema in Action: the Complete Tutorial
Sveta Smirnova
 
Ad

Recently uploaded (20)

Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptxThe-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
james brownuae
 
Tools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google CertificateTools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google Certificate
VICTOR MAESTRE RAMIREZ
 
Orion Context Broker introduction 20250509
Orion Context Broker introduction 20250509Orion Context Broker introduction 20250509
Orion Context Broker introduction 20250509
Fermin Galan
 
Buy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training techBuy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training tech
Rustici Software
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
sequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineeringsequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineering
aashrithakondapalli8
 
Autodesk Inventor Crack (2025) Latest
Autodesk Inventor    Crack (2025) LatestAutodesk Inventor    Crack (2025) Latest
Autodesk Inventor Crack (2025) Latest
Google
 
Solar-wind hybrid engery a system sustainable power
Solar-wind  hybrid engery a system sustainable powerSolar-wind  hybrid engery a system sustainable power
Solar-wind hybrid engery a system sustainable power
bhoomigowda12345
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
AI in Business Software: Smarter Systems or Hidden Risks?
AI in Business Software: Smarter Systems or Hidden Risks?AI in Business Software: Smarter Systems or Hidden Risks?
AI in Business Software: Smarter Systems or Hidden Risks?
Amara Nielson
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
OnePlan Solutions
 
wAIred_LearnWithOutAI_JCON_14052025.pptx
wAIred_LearnWithOutAI_JCON_14052025.pptxwAIred_LearnWithOutAI_JCON_14052025.pptx
wAIred_LearnWithOutAI_JCON_14052025.pptx
SimonedeGijt
 
Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
Adobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 linkAdobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 link
mahmadzubair09
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Meet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Meet the New Kid in the Sandbox - Integrating Visualization with PrometheusMeet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Meet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Eric D. Schabell
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World ExamplesMastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
jamescantor38
 
Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025Memory Management and Leaks in Postgres from pgext.day 2025
Memory Management and Leaks in Postgres from pgext.day 2025
Phil Eaton
 
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptxThe-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
james brownuae
 
Tools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google CertificateTools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google Certificate
VICTOR MAESTRE RAMIREZ
 
Orion Context Broker introduction 20250509
Orion Context Broker introduction 20250509Orion Context Broker introduction 20250509
Orion Context Broker introduction 20250509
Fermin Galan
 
Buy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training techBuy vs. Build: Unlocking the right path for your training tech
Buy vs. Build: Unlocking the right path for your training tech
Rustici Software
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
sequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineeringsequencediagrams.pptx software Engineering
sequencediagrams.pptx software Engineering
aashrithakondapalli8
 
Autodesk Inventor Crack (2025) Latest
Autodesk Inventor    Crack (2025) LatestAutodesk Inventor    Crack (2025) Latest
Autodesk Inventor Crack (2025) Latest
Google
 
Solar-wind hybrid engery a system sustainable power
Solar-wind  hybrid engery a system sustainable powerSolar-wind  hybrid engery a system sustainable power
Solar-wind hybrid engery a system sustainable power
bhoomigowda12345
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
AI in Business Software: Smarter Systems or Hidden Risks?
AI in Business Software: Smarter Systems or Hidden Risks?AI in Business Software: Smarter Systems or Hidden Risks?
AI in Business Software: Smarter Systems or Hidden Risks?
Amara Nielson
 
Wilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For WindowsWilcom Embroidery Studio Crack 2025 For Windows
Wilcom Embroidery Studio Crack 2025 For Windows
Google
 
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
Surviving a Downturn Making Smarter Portfolio Decisions with OnePlan - Webina...
OnePlan Solutions
 
wAIred_LearnWithOutAI_JCON_14052025.pptx
wAIred_LearnWithOutAI_JCON_14052025.pptxwAIred_LearnWithOutAI_JCON_14052025.pptx
wAIred_LearnWithOutAI_JCON_14052025.pptx
SimonedeGijt
 
Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025Top 12 Most Useful AngularJS Development Tools to Use in 2025
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
Adobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 linkAdobe InDesign Crack FREE Download 2025 link
Adobe InDesign Crack FREE Download 2025 link
mahmadzubair09
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Meet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Meet the New Kid in the Sandbox - Integrating Visualization with PrometheusMeet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Meet the New Kid in the Sandbox - Integrating Visualization with Prometheus
Eric D. Schabell
 
Download MathType Crack Version 2025???
Download MathType Crack  Version 2025???Download MathType Crack  Version 2025???
Download MathType Crack Version 2025???
Google
 
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World ExamplesMastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
jamescantor38
 

How to migrate from MySQL to MariaDB without tears

  • 1. How to Migrate from MySQL to MariaDB without Tears September 14-16, 2020 Sveta Smirnova
  • 2. • MySQL Support Engineer • Author of • MySQL Troubleshooting • JSON UDF functions • FILTER clause for MySQL • Speaker • Percona Live, OOW, Fosdem, DevConf, HighLoad... Sveta Smirnova 2
  • 4. • Started as fork of MySQL MariaDB 4
  • 5. • Started as fork of MySQL • Independent product MariaDB 4
  • 6. • Started as fork of MySQL • Independent product • Hundreds of unique features MariaDB 4
  • 7. • Started as fork of MySQL • Independent product • Hundreds of unique features • Important improvements are backported • from MySQL MariaDB 4
  • 9. • Check version compatibility MySQL MariaDB 5.1 5.1, 5.2, 5.3 5.5 5.5 5.6 10.0, 10.1 5.7 10.2, 10.3, 10.4, 10.5 8.0 - Drop-in Replacement 6
  • 10. • Check version compatibility • Stop MySQL Server Drop-in Replacement 6
  • 11. • Check version compatibility • Stop MySQL Server • Install MariaDB Drop-in Replacement 6
  • 12. • Check version compatibility • Stop MySQL Server • Install MariaDB • Point MariaDB to MySQL datadir Drop-in Replacement 6
  • 13. • Check version compatibility • Stop MySQL Server • Install MariaDB • Point MariaDB to MySQL datadir • Start MariaDB Drop-in Replacement 6
  • 14. • Check version compatibility • Stop MySQL Server • Install MariaDB • Point MariaDB to MySQL datadir • Start MariaDB • Run mariadb-upgrade Drop-in Replacement 6
  • 15. • Before upgrade $ ls -w100 data/mysql/ columns_priv.frm gtid_executed.ibd proc.MYD slow_log.CSV columns_priv.MYD help_category.frm proc.MYI slow_log.frm columns_priv.MYI help_category.ibd procs_priv.frm tables_priv.frm db.frm help_keyword.frm procs_priv.MYD tables_priv.MYD db.MYD help_keyword.ibd procs_priv.MYI tables_priv.MYI db.MYI help_relation.frm proxies_priv.frm time_zone.frm db.opt help_relation.ibd proxies_priv.MYD time_zone.ibd engine_cost.frm help_topic.frm proxies_priv.MYI time_zone_leap_second.frm engine_cost.ibd help_topic.ibd server_cost.frm time_zone_leap_second.ibd event.frm innodb_index_stats.frm server_cost.ibd time_zone_name.frm event.MYD innodb_index_stats.ibd servers.frm time_zone_name.ibd event.MYI innodb_table_stats.frm servers.ibd time_zone_transition.frm func.frm innodb_table_stats.ibd slave_master_info.frm time_zone_transition.ibd ... System Database Changes 7
  • 16. • After upgrade $ ls -w100 data/mysql/ columns_priv.frm gtid_executed.ibd proc.frm slow_log.frm columns_priv.MAD gtid_slave_pos.frm proc.MAD tables_priv.frm columns_priv.MAI gtid_slave_pos.ibd proc.MAI tables_priv.MAD column_stats.frm help_category.frm procs_priv.frm tables_priv.MAI column_stats.MAD help_category.MAD procs_priv.MAD table_stats.frm column_stats.MAI help_category.MAI procs_priv.MAI table_stats.MAD db.frm help_keyword.frm proxies_priv.frm table_stats.MAI db.MAD help_keyword.MAD proxies_priv.MAD time_zone.frm db.MAI help_keyword.MAI proxies_priv.MAI time_zone_leap_second.frm db.opt help_relation.frm roles_mapping.frm time_zone_leap_second.MAD engine_cost.frm help_relation.MAD roles_mapping.MAD time_zone_leap_second.MAI engine_cost.ibd help_relation.MAI roles_mapping.MAI time_zone.MAD event.frm help_topic.frm server_cost.frm time_zone.MAI ... System Database Changes 7
  • 17. • Specific MariaDB features • • Storage engines • SQL statements • Options • Just use them Differences 8
  • 18. • Specific MariaDB features • Specific MySQL features • • SQL statements • Plugins • They are missed Differences 8
  • 19. • Specific MariaDB features • Specific MySQL features • Features, present in both products • • Working differently • Our focus today Differences 8
  • 21. • MySQL • –initialize • mysql_install_db deprecated, removed in 8.0 Initial Setup 10
  • 22. • MySQL • –initialize • mysql_install_db deprecated, removed in 8.0 • MariaDB • Only mysql_install_db Initial Setup 10
  • 23. • Supported plugins • MySQL Native Caching SHA-2 - Default in 8.0 SHA-256 Cleartext No-login Socket Peer-Credential Authentication Plugins 11
  • 24. • Supported plugins • MariaDB mysql_native_password mysql_old_password SHA-256 - Client only! ed25519 GSSAPI PAM Named Pipe Unix Socket Authentication Plugins 11
  • 25. • Supported plugins • User management SQL is same Authentication Plugins 11
  • 26. • Supported plugins • User management SQL is same • MariaDB supports multiple plugins per account Authentication Plugins 11
  • 27. • MySQL • validate_password plugin Deprecated! • validate_password component mysql> SHOW VARIABLES LIKE ’validate_password%’; +––––––––––––––––––––––––––––––––––––––+––––––––+ | Variable_name | Value | +––––––––––––––––––––––––––––––––––––––+––––––––+ | validate_password_check_user_name | ON | | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIUM | | validate_password_special_char_count | 1 | +––––––––––––––––––––––––––––––––––––––+––––––––+ Password Validation 12
  • 28. • MariaDB • Password Validation Plugin API • Two plugins simple_password_check MariaDB [performance_schema]> show variables like ’simple_password_check%’; +–––––––––––––––––––––––––––––––––––––––––+–––––––+ | Variable_name | Value | +–––––––––––––––––––––––––––––––––––––––––+–––––––+ | simple_password_check_digits | 1 | | simple_password_check_letters_same_case | 1 | | simple_password_check_minimal_length | 8 | | simple_password_check_other_characters | 1 | +–––––––––––––––––––––––––––––––––––––––––+–––––––+ 4 rows in set (0.001 sec) Password Validation 12
  • 29. • MariaDB • Password Validation Plugin API • Two plugins cracklib_password_check MariaDB [performance_schema]> show variables like ’cracklib%’; +––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+ | Variable_name | Value | +––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+ | cracklib_password_check_dictionary | /var/cache/cracklib/cracklib_dict | +––––––––––––––––––––––––––––––––––––+–––––––––––––––––––––––––––––––––––+ 1 row in set (0.001 sec) Password Validation 12
  • 30. • MySQL • MariaDB • Password expiration works same way Password Validation 12
  • 31. • Syntax is same Roles 13
  • 32. • Syntax is same • MySQL • Details are in Information Schema ADMINISTRABLE_ROLE_AUTHORIZATIONS APPLICABLE_ROLES ENABLED_ROLES ROLE_COLUMN_GRANTS ROLE_ROUTINE_GRANTS ROLE_TABLE_GRANTS Roles 13
  • 33. • Syntax is same • MySQL • Stored in mysql user role_edges mysql> select * from mysql.role_edgesG *************************** 1. row *************************** FROM_HOST: % FROM_USER: my_role TO_HOST: % TO_USER: sveta WITH_ADMIN_OPTION: N 1 row in set (0.00 sec) default_roles Roles 13
  • 34. • Syntax is same • MariaDB • Details are in Information Schema APPLICABLE_ROLES ENABLED_ROLES Roles 13
  • 35. • Syntax is same • MariaDB• Stored in mysql user roles_mapping MariaDB [information_schema]> select * from mysql.roles_mappingG *************************** 1. row *************************** Host: localhost User: root Role: my_role Admin_option: Y *************************** 2. row *************************** Host: % User: sveta Role: my_role Admin_option: N 2 rows in set (0.001 sec) Roles 13
  • 36. • Syntax is same • MariaDB • The role automatically available for the grantor Roles 13
  • 38. • Compatible • Can work any way around No GTIDs 15
  • 39. • Compatible • Can work any way around • Unless data types are incompatible • Before 8.0! No GTIDs 15
  • 40. • Implementation is different • MariaDB understands MySQL GTIDs • MySQL does not accept MariaDB GTIDs • Only replication from MySQL is possible! GTIDs 16
  • 41. • Different concurrency control Multi-threaded Replication 17
  • 42. • Different concurrency control • MySQL: slave_parallel_workers Multi-threaded Replication 17
  • 43. • Different concurrency control • MySQL: slave_parallel_workers • MySQL: slave_parallel_type=DATABASE | LOGICAL_CLOCK • MYSQL: binlog_transaction_dependency_tracking = COMMIT_ORDER | WRITESET | WRITESET_SESSION Multi-threaded Replication 17
  • 44. • Different concurrency control • MariaDB: slave_parallel_threads Multi-threaded Replication 17
  • 45. • Different concurrency control • MariaDB: slave_parallel_threads • MariaDB: slave_parallel_max_queued Multi-threaded Replication 17
  • 46. • Different concurrency control • MariaDB: slave_parallel_threads • MariaDB: slave_parallel_max_queued • MariaDB: slave_domain_parallel_threads Multi-threaded Replication 17
  • 47. • Different concurrency control • MariaDB: slave_parallel_threads • MariaDB: slave_parallel_max_queued • MariaDB: slave_domain_parallel_threads • MariaDB: slave_parallel_mode=optimistic | conservative | aggressive | minimal | none Multi-threaded Replication 17
  • 48. • Different syntax for the source name • CHANGE MASTER • MySQL CHANGE MASTER TO MASTER_HOST=’source1’ FOR CHANNEL ’source_1’; • MariaDB CHANGE MASTER ’source_1’ TO MASTER_HOST=’source1’; Multi-source Replication 18
  • 49. • Different syntax for the source name • Slave status • MySQL SHOW SLAVE STATUS FOR CHANNEL ’source1’; SELECT * FROM performance_schema.replication_connection_status WHERE CHANNEL_NAME=’source_1’; Default is for all channels • MariaDB SHOW SLAVE ’source_1’ STATUS SHOW ALL SLAVES STATUS Default is default connection Multi-source Replication 18
  • 51. • MySQL mysql> explain analyze select * from ol where thread_id=10432 and site_id != 9939 -> order by id limit 3G *************************** 1. row *************************** EXPLAIN: -> Limit: 3 row(s) (actual time=364.792..364.792 rows=0 loops=1) -> Filter: ((ol.thread_id = 10432) and (ol.site_id <> 9939)) (cost=0.06 rows=3) (actual time=364.789..364.789 rows=0 loops=1) -> Index scan on ol using PRIMARY (cost=0.06 rows=33) (actual time=0.417..337.585 rows=100000 loops=1) ANALYZE 20
  • 52. • MariaDB MariaDB [test]> analyze select * from ol -> where thread_id=10432 and site_id != 9939 order by id limit 3G *************************** 1. row *************************** ... type: index possible_keys: thread_id key: PRIMARY key_len: 4 ref: const rows: 100000 r_rows: 100000.00 filtered: 8.96 r_filtered: 0.00 Extra: Using where ANALYZE 20
  • 53. • MySQL mysql> show processlistG *************************** 1. row *************************** Id: 2 User: root Host: localhost:41352 db: test Command: Query Time: 37 State: User sleep Info: select sleep(100) Rows_sent: 0 Rows_examined: 0 ... EXPLAIN for Running Thread 21
  • 54. • MySQL mysql> explain for connection 2G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: NULL partitions: NULL type: NULL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: NULL filtered: NULL Extra: No tables used 1 row in set (0.00 sec) EXPLAIN for Running Thread 21
  • 55. • MariaDB MariaDB [(none)]> show processlistG *************************** 1. row *************************** Id: 3 User: root Host: localhost:51126 db: test Command: Query Time: 2 State: User sleep Info: select sleep(30) Progress: 0.000 EXPLAIN for Running Thread 21
  • 56. • MariaDB MariaDB [(none)]> show explain for 3G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: NULL type: NULL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: NULL Extra: No tables used 1 row in set, 1 warning (25.718 sec) EXPLAIN for Running Thread 21
  • 57. • MariaDB MariaDB [(none)]> show processlistG *************************** 1. row *************************** Id: 3 User: root Host: localhost:51126 db: test Command: Query Time: 2 State: User sleep Info: select sleep(40) Progress: 0.000 ... MariaDB [(none)]> show explain for 3G ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction EXPLAIN for Running Thread 21
  • 58. • MySQL • Only histograms • Collected on demand Histograms and Table-Independent Statistics 22
  • 59. • MySQL • Only histograms • Collected on demand • MariaDB • Histograms collected and used by default • Other Collected on demand Used by default Histograms and Table-Independent Statistics 22
  • 61. • MySQL • Special data type • Functions, not available in MariaDB JSON_OVERLAPS JSON_PRETTY JSON_STORAGE_FREE JSON_STORAGE_SIZE JSON_TABLE JSON 24
  • 62. • MySQL • MariaDB • Data type JSON mapped to LONGTEXT CHECK (JSON_VALID(...)) automatically enabled if JSON alias is used • Functions, not available in MySQL JSON_COMPACT JSON_DETAILED JSON_EXISTS JSON_LOOSE JSON_QUERY JSON_VALUE JSON 24
  • 63. • MySQL • MariaDB • Replication • Statement-based works fine • Row-based Convert MySQL JSON data type to LONGTEXT JSON 24
  • 64. • "SQL with Geometry Types" of OGC • Both MySQL and MariaDB • Not all MySQL GIS functions are in MariaDB GIS 25
  • 65. • MySQL • Full Unicode support since 8.0.4 ICU library • Extended regex syntax Regular Expressions 26
  • 66. • MySQL • Full Unicode support since 8.0.4 ICU library • Extended regex syntax • MariaDB • Full Unicode support since 10.5 • PCRE syntax Regular Expressions 26
  • 67. • MySQL • Full Unicode support since 8.0.4 ICU library • Extended regex syntax • MariaDB • Full Unicode support since 10.5 • PCRE syntax • REGEXP_LIKE only in MySQL Regular Expressions 26
  • 68. • Character set gb18030 only in MySQL • MariaDB has more collations • MariaDB supports not all MySQL collations Localization 27
  • 70. • MySQL • In Performance Schema mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED -> FROM performance_schema.events_stages_current where event_name like ’%alter%’; +––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+ | EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED | +––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+ | stage/innodb/alter table (read PK and internal sort) | 488 | 8512 | ... | stage/innodb/alter table (read PK and internal sort) | 9396 | 9396 | +––––––––––––––––––––––––––––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––––––+ 1 row in set (0.00 sec) Progress for ALTER TABLE 29
  • 71. • MariaDB • In Information Schema MariaDB [information_schema]> select stage, max_stage, progress -> from processlist where info like ’alter table%’; +–––––––+–––––––––––+––––––––––+ | stage | max_stage | progress | +–––––––+–––––––––––+––––––––––+ | 1 | 2 | 46.881 | ... | 1 | 2 | 68.103 | ... | 1 | 2 | 83.452 | +–––––––+–––––––––––+––––––––––+ 1 row in set (0.001 sec) Progress for ALTER TABLE 29
  • 72. • MariaDB • In SHOW PROCESSLIST MariaDB [information_schema]> show processlistG *************************** 1. row *************************** Id: 5 User: root Host: localhost:53616 db: employees Command: Query Time: 4 State: copy to tmp table Info: alter table salaries engine=innodb Progress: 31.510 Progress for ALTER TABLE 29
  • 73. • MariaDB • In the supporting client MariaDB [employees]> alter table salaries engine=innodb; Stage: 1 of 2 ’copy to tmp table’ 73.4% of stage done Progress for ALTER TABLE 29
  • 74. • Tables, which MariaDB misses • Locks data_lock_waits data_locks MariaDB: in Information Schema SE_* Performance Schema 30
  • 75. • Tables, which MariaDB misses • Variables global_variables - MariaDB: in I_S session_variables - MariaDB: in I_S variables_by_thread - MariaDB: do not exist variables_info - MariaDB: I_S.SYSTEM_VARIABLES Performance Schema 30
  • 76. • Tables, which MariaDB misses • Replication replication_applier_filters replication_applier_global_filters replication_applier_status_by_worker replication_connection_status MariaDB: SHOW SLAVE STATUS Performance Schema 30
  • 77. • Tables, which MariaDB misses • Errors events_errors_summary_by_account_by_error events_errors_summary_by_host_by_error events_errors_summary_by_thread_by_error events_errors_summary_by_user_by_error events_errors_summary_global_by_error Performance Schema 30
  • 78. • Tables, which MariaDB misses • Statements histograms events_statements_histogram_by_digest events_statements_histogram_global Performance Schema 30
  • 79. • Tables, which MariaDB misses • User-defined functions user_defined_functions MariaDB: mysql.func Performance Schema 30
  • 80. • Tables, which MariaDB misses • Binary log status and LSN log_status MariaDB: SHOW MASTER STATUS and SHOW ENGINE INNODB STATUS Performance Schema 30
  • 81. • Initial upgrade is straightforward • Feature differences are easily solvable • MariaDB has options which simplify migration • Migrate to explore all MariaDB advantages! Conclusions 31
  • 82. • Migrating to MariaDB from MySQL MariaDB vs MySQL: Features Function Difference Replication Compatibility Matrix Optimizer Features Comparison Matrix Spatial Support Matrix More Details 32
  翻译: