The MySQL development team announced on 12th that the MySQL 8.0.0 Development milestone version (DMR) was released! One might wonder why MySQL jumped from 5.x to 8.0. In fact, the MySQL 5.x series has lasted for many years, from the time it was acquired by Oracle to 5.1, and after the acquisition has been maintained at 5.x, such as 5.5,5.6,5.7 and so on. In fact, if according to the original release rhythm, 5.6.x can be regarded as 6.x,5.7.x as 7.x. So, just change the version naming method only.
However, this release of the MySQL 8.0.0 development version is still a lot of bright spots.
MySQL 8.0.0 Highlights
transactional data dictionary, completely out of the MyISAM storage engine
Actually put the data dictionary into some of the tables in the InnoDB, no longer need FRM, TRG, PAR files! The information Schema now appears as a view of the data dictionary table. In principle, MyISAM data table types are not required, and all system tables can be put into InnoDB.
SQL role
A role is a collection of a series of permissions. You can create roles to grant and remove roles for a user. This is convenient for permission management.
The UTF8MB4 character set becomes the default character set and supports Unicode 9
The default character set will change from Latin1 to UTF8MB4, and the default sequencer collation will change from Latin1_swedish_ci to Utf8mb4_800_ci_ai.
Non-visible Index
You can set some indexes to be invisible so that the SQL optimizer does not use it, but it continues to stay updated in the background. You can restore visibility whenever you need it.
Binary data can be bit-manipulated
It is not only possible to perform bit operations on BIGINT, but also to support the bitwise operation of [Var]binary/[tinymediumlong]blob] starting from 8.0.
Improved operation of IPV6 and UUID
Inet6_aton () and Inet6_ntoa () can now perform bit operations because Inet6_aton () now returns the VARBINARY (16) data type (128 bits). Improved UUID operation, introduced three new functions Uuid_to_bin (), Bin_to_uuid () and Is_uuid (). MySQL does not have a special IPV6 and UUID data type, but is saved with the VARBINARY (16) data type.
Persistent global variables
You can use set PERSIST to set persistent global variables, even if the restart is maintained.
Improvement of performance Database performance Schema
For example, more than 100 indexes have been added to the performance database, which can be retrieved faster.
Refactoring SQL Analyzer
Continuous and progressive improvements to the SQL Analyzer. The old parser has serious limitations due to its syntactic complexity and top-down parsing, which makes it difficult to maintain and extend.
Cost Model
The InnoDB buffer now estimates how many tables and indexes are in the main memory buffer, which lets the optimizer know whether the data can be stored in memory or must be stored on disk when it chooses how to access it.
Histogram histograms
By using histograms, users or DBAs can count the distribution of data, which can be used for query optimization to find optimized query scenarios.
Improved scan performance
Improved performance of InnoDB range queries to improve performance for full table queries and range query 5-20%.
Refactoring BLOBs
The refactoring BLOB accelerates the fragment read/update operation, which accelerates the operation of the JSON data.
Persistent self-increment
InnoDB persists the maximum value of the self-increment sequence to the redo log. This improvement also fixes a very old bug number 199th.
Temp table
Cancels support for compressing temporary tables and stores the metadata for temporary tables into memory.
For additional important improvements and details, please refer to MySQL 8.0.0 release announcement [1] and here [2].
Download
Currently 8.0.0 is a development version, and if you want to experience and test the latest features, you can download the installation packages for each platform from Dev.mysql.com[3. However, the MySQL package is getting bigger and larger, and the binaries on the Linux platform are nearly 1 GB after they are packaged. If used in a production environment, continue to use the 5.7 series until 8.0 is not in the stable version, the latest version is the 5.7.15 GA version-This is only more than M.
The latest source code on GitHub, interested friends can go to see, many of which are Chinese contributions.
[1]: http://dev.mysql.com/doc/relnotes/mysql/8.0/en/
[2]: http://mysqlserverteam.com/the-mysql-8-0-0-milestone-release-is-available/
[3]: http://dev.mysql.com/downloads/mysql/
MY SQL8.0 Milestone release