In this article we are going to explore the features of upcoming MySQL open source database which is widely used for handling large quantity of data in for web and enterprise applications. MySQL is realising version 8 of its popular database which is next version of 5.7 database. MySQL releasing it as version 8 as version is version 6.0 is being nixed and version 7.0 is reserved for MySQL Cluster distribution.
So, the next version of MySQL after 5.8 is MySQL Version 8.x. In this tutorial we are exploring the new and advanced features of MySQL database server which will be available with the version 8.
Now we will discuss the features of MySQL 8 database server one by one.
Here are the features of MySQL 8:
MySQL 8 provides better unicode support and the default unicode is utf8mb4, which is fast and supports non-Western characters. This is features is one of most asked feature of the MySQL server. With this version latin1 is discouraged and now utf8mb3 character set is deprecated.
MySQL 8 introduced window function which is one of the awaited features, which allows to perform calculations like count or sum on the set of rows. This feature is advance feature and it is used to perform aggregation for each row in the result set. Such functionality is not available in traditional aggregation function.
MySQL 5.7 introduced JSON document support and now in this version of MySQL more features are added. MySQL version 8 now competes with the other popular NoSQL databases. It comes with with better performance and functions for extracting ranges from JSON data.
MySQL 8 is designed to automatically scale to use the total available memory and provide best performance. It is designed to adjust memory usage and perform best in virtual machine deployment.
MySQL 8 uses the SET PERSIST innodb_buffer_pool_size = X; instead of SET GLOBAL innodb_buffer_pool_size = X; for persisting the changes make during runtime. This saves the runtime changes while restart of the MySQL server and its a good feature of this version of MySQL. MySQL server uses mysqld-auto.cnf file to persist the changes during restart.
The privileges table are used in MySQL for persisting user privileges details and in this version its type is changed to InnoDB from MyISAM type.
Roles were introduced in MySQL 5.7 and this is also available in MySQL 8. Roles allows the admin to create roles with certain privileges like select, update, insert etc. These roles can be assigned to a group of user and this functionality makes life of admin much easier.
MySQL 8 introduced Global Data Dictionary which is transactional data dictionary used to store the information of database objects. In previous version it was stored in the metafiles and was non-transactional.
Now you can create Invisible indexes which can be used for testing the performance of the index. If it does not perform you can remove it without actually affecting the production database. This feature is good when you can to test the index performance without disturbing the actual MySQL production database.
MySQL 8 allows you to disable the deadlock detection and this feature is useful when you have heavy concurrent workload. You can do it by updating the innodb_deadlock_detect variable value.
If you have highly transaction application with lots of insert this feature will help you. The value of Auto-increment counter is persisted across server restart in engine-private system.
MySQL 8 comes with many bug fixes to enhance the robustness of complete system and provide better performance.
In this article we have discussed import features of MySQL 8 sever.
You can find many tutorials at MySQL Tutorials page.