MySQL, one of the most popular databases in the world, has recently released the MySQL 8.0 RC.
— MySQL (@MySQL) 26 сентября 2017 г.
What's new in MySQL 8.0?
So, main improvements and new features are:
- First-class support for Unicode 9.0, straight out of the box.
MySQL 8.0 no longer uses
latin1as the default encoding, to discourage new users from choosing a troublesome legacy option. The recommended default character set for MySQL 8.0 is now
utf8mb4, which is intended to be faster than the now-deprecated
utf8mb3character set and also to support more flexible collations and case sensitivity.
- Window functions and recursive SQL syntax, for queries that previously weren’t possible or would have been difficult to write.
MySQL 8.0 adds window functions via the standard
OVERSQL keyword, in much the same way it is implemented in competing products like PostgreSQL.
- Expanded support for native JSON data and document-store functionality.
MySQL 8.0 expands JSON support with better performance, functions to allow extracting ranges from a JSON query (such as a “top N”-type request), and new aggregation functions that let MySQL-native structured data and semistructured JSON data be merged in a query.
It's worth noting that MySQL is jumping several versions in its numbering (from 5.5), due to the fact that 6.0 being nixed and 7.0 being reserved for the clustering version of MySQL.
MySQL 8.0 release date
As we know, MySQL’s release policy is “a new [general] release every 18-24 months.” Last major release (MySQL 5.7) was at October 21, 2015, so we should wait for 8.0 version around October 2017.
Other features in MySQL 8.0
Other interesting changes planned for MySQL 8.0 are:
- More options for how to handle locked rows, via the
SKIP LOCKEDallows locked rows to be skipped during an operation;
NOWAITthrows an error immediately on encountering a locked row.
- MySQL can automatically scale to the total amount of memory available, to make the best possible use of virtual machine deployments.
- Indexes can be manually excluded from the query optimizer via the “invisible index” feature. Indexes marked as invisible are kept up to date with changes to tables, but aren’t used to optimize queries. One suggested use for this is to nondestructively determine if a particular index needs to be kept or no