Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

MySQL 8.0.18 - New Features Summary

868 views

Published on

Summary of the MySQL 8.0.18 new features.

Published in: Data & Analytics
  • Be the first to comment

MySQL 8.0.18 - New Features Summary

  1. 1. MySQL 8.0.18 New Features Summary Olivier DASINI MySQL Principal Solutions Architect Blog: http://dasini.net/blog/en/ Twitter: @freshdaz
  2. 2. http://dasini.net/blog/en/ Me, Myself & I ➢ MySQL Geek ✔ Addicted to MySQL for 15+ years! ✔ Playing with databases for 20+ years ➢ MySQL Writer, Blogger and Speaker ✔ Also former : DBA, Consultant, Architect, Trainer, ... ➢ MySQL Principal Solutions Architect EMEA at Oracle ➢ Stay tuned! : ✔ Twitter : @freshdaz ✔ Blog : http://dasini.net/blog Olivier DASINI
  3. 3. http://dasini.net/blog/en/ The following is just a summary of the MySQL 8.0.18 new features. For a more thorough and exhaustive view please read the following : ➢ The MySQL 8.0.18 Maintenance Release is Generally Available ✔ https://mysqlserverteam.com/the-mysql-8-0-18-maintenance-release-is-generally-available/ ➢ Changes in MySQL 8.0.18 (2019-10-14, General Availability) ✔ https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-18.html ➢ Changes in MySQL Shell 8.0.18 (2019-10-14, General Availability) ✔ https://dev.mysql.com/doc/relnotes/mysql-shell/8.0/en/news-8-0-18.html ➢ Changes in MySQL Router 8.0.18 (2019-10-14, General Availability) ✔ https://dev.mysql.com/doc/relnotes/mysql-router/en/news-8-0-18.html And also the MySQL team Blogs : ➢ https://mysqlserverteam.com/ ➢ https://mysqlhighavailability.com/ ➢ https://mysqlrelease.com/ ➢ http://insidemysql.com/ Disclaimer
  4. 4. http://dasini.net/blog/en/ The world's most popular open source database
  5. 5. http://dasini.net/blog/en/ Highlights ➢ Hash Join ➢ EXPLAIN ANALYZE ➢ Only OpenSSL ➢ Random Password ➢ MySQL Shell Enhancements ➢ MySQL Router Enhancements ➢ InnoDB Cluster Enhancements ➢ Group Replication Enhancements ➢ Replication Enhancements ➢ MySQL Enterprise New Features ➢ Thanks to the Contributors 5
  6. 6. http://dasini.net/blog/en/ Hash Join
  7. 7. http://dasini.net/blog/en/ Hash Join 1/2 ➢ Implement hash join as a way of executing inner equi-joins in MySQL ➢ Hash join does not need any index to execute ➢ In most cases more efficient than the current block-nested loop algorithm 7 EXPLAIN FORMAT=TREE SELECT title FROM film INNER JOIN film_actor USING (last_update)G *************************** 1. row *************************** EXPLAIN: -> Inner hash join (film_actor.last_update = film.last_update) (cost=546314.82 rows=546200) -> Table scan on film_actor (cost=0.07 rows=5462) -> Hash -> Table scan on film (cost=103.00 rows=1000)
  8. 8. http://dasini.net/blog/en/ Hash Join 2/2 8 Resources ➢ Hash join in MySQL 8 ✔ https://mysqlserverteam.com/hash-join-in-mysql-8/ ➢ Hash Join Optimization ✔ https://dev.mysql.com/doc/refman/8.0/en/hash-joins.html ➢ MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZE ✔ https://www.slideshare.net/NorvaldRyeng/mysql-8018-latest-updates-hash-join-and-explain-analyze ➢ WL#2241 - Hash join ✔ https://dev.mysql.com/worklog/task/?id=2241
  9. 9. http://dasini.net/blog/en/ EXPLAIN ANALYZE
  10. 10. http://dasini.net/blog/en/ EXPLAIN ANALYZE 1/2 ➢ Run the query and then produce EXPLAIN output with additional information about how the optimizer estimates matched the actual execution ➢ Present the estimated execution cost, estimated number of returned rows, the time to return first row, the time to return all rows (i.e. actual cost), the number of rows returned and the number of loops ➢ The overall query execution is presented as a tree structure 10 EXPLAIN ANALYZE SELECT title FROM film INNER JOIN film_actor USING (last_update)G ************************************* 1. row ************************************* EXPLAIN: -> Inner hash join (film_actor.last_update = film.last_update) (cost=546314.82 rows=546200) (actual time=9.444..9.444 rows=0 loops=1) -> Table scan on film_actor (cost=0.07 rows=5462) (actual time=0.042..3.338 rows=5462 loops=1) -> Hash -> Table scan on film (cost=103.00 rows=1000) (actual time=0.121..1.229 rows=1000 loops=1)
  11. 11. http://dasini.net/blog/en/ EXPLAIN ANALYZE 2/2 11 Resources ➢ MySQL EXPLAIN ANALYZE ✔ https://mysqlserverteam.com/mysql-explain-analyze/ ➢ MySQL 8.0.18 latest updates: Hash join and EXPLAIN ANALYZE ✔ https://www.slideshare.net/NorvaldRyeng/mysql-8018-latest-updates-hash-join-and-explain-analyze ➢ WL#4168 - Implement EXPLAIN ANALYZE ✔ https://dev.mysql.com/worklog/task/?id=4168
  12. 12. http://dasini.net/blog/en/ Only OpenSSL
  13. 13. http://dasini.net/blog/en/ Only OpenSSL ➢ All MySQL builds now use OpenSSL ➢ Remove support for wolfSSL and yaSSL from the MySQL codebase ➢ Moving forward, MySQL will only use OpenSSL as its SSL/TLS library ✔ We’re going to be building all of our binaries (commercial and community) for each release (5.6, 5.7, 8.0) in the same identical way when it comes to SSL/TLS libraries 13 Resources ➢ MySQL is OpenSSL-only now ! ✔ https://mysqlserverteam.com/mysql-is-openssl-only-now/ ➢ WL#13290 - Remove wolfSSL support from 8.0 codebase. ✔ https://dev.mysql.com/worklog/task/?id=13290 ➢ WL#13289 - Remove yaSSL support from 5.6/5.7 codebase ✔ https://dev.mysql.com/worklog/task/?id=13289
  14. 14. http://dasini.net/blog/en/ Random Password
  15. 15. http://dasini.net/blog/en/ Random Password 1/2 ➢ Generate a strong random password ✔ Returned as a result set row to the client ➢ For CREATE USER / ALTER USER / SET PASSWORD statements ➢ Password length is controlled by the generated_random_password_length (20 characters by default) 15 SELECT @@generated_random_password_length; +------------------------------------+ | @@generated_random_password_length | +------------------------------------+ | 20 | +------------------------------------+ CREATE USER 'daz'@'localhost' IDENTIFIED BY RANDOM PASSWORD; +------+-----------+----------------------+ | user | host | generated password | +------+-----------+----------------------+ | daz | localhost | f@-iJ>0Ba<62kR1UQ3r; | +------+-----------+----------------------+ ALTER USER 'daz'@'localhost' IDENTIFIED BY RANDOM PASSWORD; +------+-----------+----------------------+ | user | host | generated password | +------+-----------+----------------------+ | daz | localhost | FFx;pyBP)/lyFkBa9yGy | +------+-----------+----------------------+ SET PASSWORD FOR 'daz'@'localhost' TO RANDOM; +------+-----------+----------------------+ | user | host | generated password | +------+-----------+----------------------+ | daz | localhost | }cvqvQTfIbSajQZ4wrj& | +------+-----------+----------------------+
  16. 16. http://dasini.net/blog/en/ Random Password 2/2 16 Resources ➢ MySQL Random Password Generation ✔ https://elephantdolphin.blogspot.com/2019/10/mysql-random-password-generation.html ➢ Random Password Generation ✔ https://dev.mysql.com/doc/refman/8.0/en/password-management.html#random-password-generation ➢ generated_random_password_length ✔ https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_generated_random_password_length ➢ WL#11772 - CREATE USER IDENTIFIED BY RANDOM PASSWORD ✔ https://dev.mysql.com/worklog/task/?id=11772
  17. 17. http://dasini.net/blog/en/ MySQL Shell Enhancements
  18. 18. http://dasini.net/blog/en/ MySQL Shell Enhancements ➢ Python 3 Migration ✔ Due to the coming EOL for Python 2.7 by end of this year, the Shell has been updated to use Python 3 ✔ The minimum supported version is Python 3.4.3 ➢ Built-in Thread Reports ✔ 2 new built-in reports, which provide information drawn from various sources including MySQL's Performance Schema: ━ threads : lists the current threads in the connected MySQL server which belong to the user account that is used to run the report ━ thread : provides detailed information about a specific thread in the connected MySQL server ✔ You can run the new reports using MySQL Shell's show and watch commands ➢ 2 new control commands ✔ edit (e) : opens a command in the default system editor for editing ✔ system (!) : runs the operating system command that you specify as an argument to the command, then displays the output from the command in MySQL Shell 18 Resources ➢ MySQL Shell 8.0.18 – What’s New? ✔ https://mysqlserverteam.com/mysql-shell-8-0-18-whats-new/
  19. 19. http://dasini.net/blog/en/ MySQL Router Enhancements
  20. 20. http://dasini.net/blog/en/ MySQL Router Enhancements ➢ Frontend for MySQL Routers keyring ✔ mysqlrouter_keyring is a new utility to manage the Router keyring ➢ Add timestamp precision to log ✔ Implement sub-second timestamp precision for the Router’s log files 20 Resources ➢ Changes in MySQL Router 8.0.18 (2019-10-14, General Availability) ✔ https://dev.mysql.com/doc/relnotes/mysql-router/en/news-8-0-18.html ➢ WL#12974 - Frontend for MySQL Routers keyring ✔ https://dev.mysql.com/worklog/task/?id=12974 ➢ WL#11194 – Harness: Add optional timestamp precision to log ✔ https://dev.mysql.com/worklog/task/?id=11194
  21. 21. http://dasini.net/blog/en/ InnoDB Cluster Enhancements
  22. 22. http://dasini.net/blog/en/ InnoDB Cluster Enhancements 22 ➢ Log SQL statements ✔ Provide information about all SQL statements executed by the AdminAPI ➢ Full IPv6 support ✔ If the target MySQL Server version is equal or higher to 8.0.14, IPv6 addresses can now be used ➢ Reset the cluster recovery accounts ✔ You can now reset the passwords for the internal recovery accounts created by InnoDB Cluster ━ e.g. To follow a custom password lifetime policy ✔ Applies only to the passwords created by InnoDB Cluster ➢ Replication lag ✔ Cluster’s status command now monitor the time between the most recent transaction being committed and being applied to a cluster member Resources ➢ MySQL InnoDB Cluster – What’s new in Shell AdminAPI 8.0.18 release ✔ https://mysqlserverteam.com/mysql-innodb-cluster-whats-new-in-shell-adminapi-8-0-18-release/
  23. 23. http://dasini.net/blog/en/ Group Replication Enhancements
  24. 24. http://dasini.net/blog/en/ Group Replication Enhancements ➢ OFFLINE_MODE ✔ New option available for the group_replication_exit_state_action system variable ✔ Close all connections and disallows new connections from users who do not have the CONNECTION_ADMIN or SUPER privilege, on a member who left the group unintentionally ✔ Prevent updates like the default READ_ONLY exit action does, but also prevent stale reads ➢ TLS 1.3 support ✔ Secure communication using TLS 1.3 among all group members in a Group Replication cluster 24 Resources ➢ Automatic member fencing with OFFLINE_MODE in Group Replication ✔ https://mysqlhighavailability.com/automatic-member-fencing-with-offline_mode-in-group-replication/ ➢ group_replication_exit_state_action ✔ https://dev.mysql.com/doc/refman/8.0/en/group-replication-options.html#sysvar_group_replication_exit_state_action ➢ WL#12895 - Group Replication: Add OFFLINE_MODE to group_replication_exit_state_action ✔ https://dev.mysql.com/worklog/task/?id=12895 ➢ Group Replication Secure Socket Layer (SSL) Support ✔ https://dev.mysql.com/doc/refman/8.0/en/group-replication-secure-socket-layer-support-ssl.html ➢ WL#12990 - Group Replication: TLS 1.3 support ✔ https://dev.mysql.com/worklog/task/?id=12990
  25. 25. http://dasini.net/blog/en/ Replication Enhancements
  26. 26. http://dasini.net/blog/en/ Replication Enhancements ➢ Replication with privilege checks ✔ Enable secure replication from an untrusted source to a trusted destination ✔ DBA can now define a user under which the replication applier threads will operate and therefore do privilege checking ✔ PRIVILEGE_CHECKS_USER account helps secure a replication channel against the unauthorized or accidental use of privileged or unwanted operations 26 Resources ➢ MySQL 8.0.18 Replication Enhancements ✔ https://mysqlhighavailability.com/mysql-8-0-18-replication-enhancements/ ➢ Replication with restricted privileges ✔ https://mysqlhighavailability.com/replication-with-restricted-privileges/ ➢ Privileges For The Replication PRIVILEGE_CHECKS_USER Account ✔ https://dev.mysql.com/doc/refman/8.0/en/replication-privilege-checks-account.html ➢ WL#12966 - Replication with privilege checks ✔ https://dev.mysql.com/worklog/task/?id=12966
  27. 27. http://dasini.net/blog/en/ MySQL Enterprise New Features
  28. 28. http://dasini.net/blog/en/ Enterprise New Features ➢ HashiCorp Vault Support ✔ MySQL Enterprise Edition now includes a keyring_hashicorp plugin that uses HashiCorp Vault as a back end for keyring storage ➢ Incremental Backup supports Page Tracking ✔ mysqlbackup (MEB) supports creating incremental backups using the page tracking functionality of the MySQL Server ✔ It looks for changed pages in the InnoDB data files that have been modified since the last backup and then copies them ✔ In general, incremental backups using page tracking are faster than other kinds of incremental backups 28 Resources ➢ MySQL Keyring now speaks Hashicorp Vault ✔ https://mysqlserverteam.com/mysql-keyring-now-speaks-hashicorp-vault/ ✔ https://mysqlserverteam.com/mysql-keyring-now-speaks-hashicorp-vault/2/ ✔ https://mysqlserverteam.com/mysql-keyring-now-speaks-hashicorp-vault/3/ ➢ Using the HashiCorp Vault Keyring Plugin ✔ https://dev.mysql.com/doc/refman/8.0/en/keyring-hashicorp-plugin.html ➢ Incremental Backup Using Page Tracking ✔ https://dev.mysql.com/doc/mysql-enterprise-backup/8.0/en/mysqlbackup.incremental.html#mysqlbackup.page- tracking.incremental
  29. 29. http://dasini.net/blog/en/ Thanks for the Contributions
  30. 30. http://dasini.net/blog/en/ Thanks for the Contributions Facebook Gillian Gunson (from GitHub) Przemysław Skibiński (from Percona) Daniel Black (from IBM) Satya Bodapati (from Percona) 30 If you have patches you would like to contribute you can do so from : ➢ MySQL’s GitHub repository : https://github.com/mysql ➢ Requires signing the Oracle Contributor Agreement : https://www.oracle.com/technetwork/community/oca-486395.html Details ➢ MySQL Server 8.0.18 Thanks for the Contributions ✔ https://mysql.wisborg.dk/2019/10/20/mysql-server-8-0-18-thanks-for-the-contributions/
  31. 31. http://dasini.net/blog/en/ The complete list of new features in MySQL 8.0 31 There are over 250 new features in MySQL 8.0... https://mysqlserverteam.com/the-complete-list-of-new-features-in-mysql-8-0/
  32. 32. http://dasini.net/blog/en/ Thanks for using !

×