The MySQL development team announced the MySQL 8.0.0 Development milestone release (DMR) on 12th! Someone might wonder why MySQL jumped from 5.x to 8.0. In fact, the MySQL 5.x series has been extended for many years, from Oracle before the acquisition is 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, you can take 5.6.x as 6.x,5.7.x as 7.x. So, just change the version naming method.
However, the release of the MySQL 8.0.0 development version still has a lot of bright spots.
MySQL 8.0.0 Highlights
transactional data dictionary, completely off the MyISAM storage engine
Actually put the data dictionary in some 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 can be completely unnecessary, and all system tables can be placed in InnoDB.
SQL role
A role is a collection 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 order collation will change from Latin1_swedish_ci to Utf8mb4_800_ci_ai.
Invisible Index
You can set some indexes to be invisible so that the SQL optimizer will not use it, but it will continue to keep updating in the background. When necessary, you can restore the visible at any time.
Bitwise manipulation of binary data
Not only can BIGINT bitwise operation, starting from 8.0 also support to [Var]binary/[tinymediumlong]blob bitwise operation.
Improved operations on IPV6 and UUID
Inet6_aton () and Inet6_ntoa () are now able to perform bit operations because Inet6_aton () now returns the VARBINARY (16) data type (128-bit). The UUID operation has been improved with the introduction of 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 as a VARBINARY (16) data type.
Persistent global variables
You can set a persistent global variable with set PERSIST, even if the reboot is maintained.
Improvement of performance Schema for performance database
For example, the performance of the database increased by more than 100 indexes, can be retrieved faster.
Refactoring SQL Analyzer
Continuously improve the SQL analyzer incrementally. The old parser has serious limitations due to its syntactic complexity and top-down analysis, which makes it difficult to maintain and extend.
Cost Model
The InnoDB buffer can now estimate how many tables and indexes are in the main memory cache, which allows the optimizer to choose the access mode to know whether the data can be stored in memory or must be stored on disk.
Histogram histograms
By using histograms, a user or DBA can count the data distribution, which can be used to query optimization to find optimized query scenarios.
Improved scan performance
The performance of InnoDB range query is improved, and the performance of full table query and range query 5-20% can be enhanced.
Refactoring BLOB
The refactoring BLOB accelerates the fragment read/update operation and accelerates the operation of JSON data.
Persistent self-increment
InnoDB will persist the maximum value of the self-increasing sequence into the redo log. This improvement also fixes a very old bug number 199th.
Temporary tables
Suppresses support for compressed temporary tables and stores the metadata of temporary tables into memory.
For more important improvements and details, please refer to the MySQL 8.0.0 release Bulletin [1] and [2].
Download
Currently 8.0.0 or development version, 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 the binaries on the Linux platform are packaged nearly 1 GB. If used in a product environment, continue to use the 5.7 series until 8.0 is not in the stable version, and the current version is the 5.7.15 GA version-This is more than M.
The latest source code on the GitHub, interested friends can go to see, many of them 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/