On February 5, Oracle announced the release of a stable release of MySQL version 5.6. The new version has done a lot of work. The main efforts were aimed at improving performance, scalability and flexibility. InnoDB engine has undergone major changes.
Key improvements include: support for full-text search tools, access to data through the memcached API, increased performance when intensively writing data, and increased scalability when processing a large number of simultaneous requests. Another innovation of version 5.6 is the ability to execute DDL operations (Data Definition Language) without transferring the DBMS offline and interrupting access to the tables. Administrators can now perform operations related to dropping a schema, adding or removing data columns, or renaming columns without disabling the DBMS. Previously, such features were only available in NoSQL products.
In comparison with version 5.5, the new product can now work on 48-core servers, against 32-core servers in MySQL 5.5 ')
A little more about the key features:
An interface has been implemented for direct access to InnoDB tables in the style of NoSQL systems using an API that manipulates key / value pairs and is compatible with memcached.
Now you can create full-text indexes in InnoDB to organize a quick search for word forms among the text content stored in InnoDB tables. Previously, full-text search was available only for MyISAM tables.
Improving the efficiency of the query optimizer, streamlining the process of selecting a result set of values, sorting and executing a query. New optimizations Index Condition Pushdown (ICP) and Batch Key Access (BKA) allow to increase the throughput of some queries up to 280 times. The efficiency of query execution of the “SELECT ... FROM single_table ... ORDER BY non_index_column [DESC] LIMIT [M,] N;” query has been increased. The performance of the “SELECT ... LIMIT N” queries that output only part of the rows from a large selection has been increased.
The diagnostic tools for optimizing the work of the optimizer have been expanded, EXPLAIN support has been added for INSERT, UPDATE and DELETE operations. The results of EXPLAIN can now be displayed in JSON format. The new optimizer tracing mode allows you to follow each decision taken in the query optimization process.
Additional optimizations of subquery execution, in which nested queries like "SELECT ... FROM table1 WHERE ... IN (SELECT ... FROM table2 ...))" are translated into a more optimal representation at the stage before the direct execution of the query, for example, they are replaced with a more efficient JOIN.
Expansion of the implementation of the PERFORMANCE_SCHEMA diagnostic system, which provides low-level tools for monitoring the execution of queries and various events during the operation of the DBMS. PERFORMANCE_SCHEMA allows you to assess in detail the bottlenecks when performing long queries, as well as provide summary statistics grouped by requests, threads, users, hosts and objects.
The implementation of the InnoDB engine has been improved, there has been an increase in performance when executing transactions and when activity is dominated by data read operations — in some situations, the acceleration reaches 230%.
Delayed replication mode, which allows data to be replicated not immediately, but with a certain delay, which provides protection against operator errors (for example, accidental deletion of table contents).
Increasing the maximum size of files with change logs (InnoDB Redo Log) from 4 GB to 2 TB.
Security enhancement: support for specifying authentication parameters in the .mylogin.cnf file in encrypted form; add sha256_password plugin for storing password hashes using SHA-256 algorithm; adding a field to the mysql.user table with a password expiration time; new SQL functions VALIDATE_PASSWORD_STRENGTH () to evaluate password strength.
Support for starting the server in read-only mode (option --innodb-read-only, only for InnoDB).
Support for specifying fractional seconds in the TIME, DATETIME and TIMESTAMP functions to specify microseconds.
Support for options "--log", "--log-slow-queries", "--one-thread", "--safe-mode", "--skip-thread-priority", "--table-" cache ".
You can learn more about the innovations on the corresponding page.
In connection with this release, the MySQL and MariaDB rivalry is becoming more interesting, which has recently been rapidly replacing MySQL from distributions. At the moment, this has happened in Fedora and OpenSUSE.