Oracle has announced the availability of the first release candidate of MySQL 8.0, which focuses on making MySQL better for modern apps. The new release was announced in a MySQL team blog post by Morgan Tocker.
The 8.0 also marks a departure from the 5.x numbering series, which has been used since 2005. Skipping 6.x and 7.x was intentional to avoid confusion with a previous alpha release and MySQL Cluster, and also to communicate the depth of some of the core changes, writes Tocker.
According to Tocker, a modern application is mobile-first and uses context about the user (such as their location) while reducing the clicks required for a transaction.
In addition, he adds, “Unicode (or more specifically UTF-8 encoding) has become universal even in English speaking markets. A key driver is mobile applications, where emojis are frequently used as character input. To support modern applications, it is important to have first-class support for UTF-8 out of the box.”
Morever, modern applications are developed with a focus on time-to-market. “You don’t always know how what you developed will be used, and want to be able to respond fast to the directions the market takes you. It is important to have flexibility, and a large part of this story is schemaless JSON support.”
According to Tocker, “JSON support was perhaps the most well received feature of MySQL 5.7, and with MySQL 8.0 we have expanded it with a number of useful additions. In terms of SQL Functions, we have added functions to check the on-disk size of the native JSON type, array and object aggregate functions, and a pretty function for formatting. JSON path expressions now support ranges, which means that you can now extract the top n or last item from an array.”
In this release, the team has also enhanced the performance of JSON, with optimizer support for a partial update, and improved performance of manipulating JSON in a number of cases such as sorting data.
The MySQL document store allows users to treat MySQL like a document database, with a set of NoSQL CRUD APIs to access their data. “First introduced in MySQL 5.7, the document store now provides you with consistent reads-and-writes. This gives it a distinct advantage over other NoSQL databases, in that developers don’t need to give up transactional semantics. Data created in the Document Store can also be accessed via the regular MySQL SQL protocol,” writes Tocker.
In addition, the MySQL document store has expanded its indexing capabilities. “To enhance spatial searches, we have added support for spatial indexing of GeoJSON data within MySQL JSON documents, enabling efficient spatial searches of documents in the MySQL Doc Store. On the full text search side of things we now allow full text indexing of entire or part of a JSON document. With this, users can more flexibility search all or part of the data within your JSON documents within MySQL," writes Tocker.
"The MySQL Shell now lets users add a splash of color, style, and ease of use. New customizations lets users add various session or other contextual information within the shell – helping users track and view things like connection/protocol, active schema, SSL enabled, etc. MySQL Shell users can add custom fonts, browse command history, perform multiline editing, and benefit from full Unicode support.”
MySQL 8.0 also provides both (recursive) CTEs and Window Functions, support for the lock modifiers SKIP LOCKED and NOWAIT, and the new release’s Unicode support has been upgraded to the latest 9.0 standard, and switched from latin1 to utf8mb4 for the default character set.
For complete details on the new release, go to www.mysql.com.