With MySQL 5.6, released Tuesday, Oracle has updated the open-source database to make it more competitive with NoSQL data stores such as MariaDB or Cassandra.
"We're in constant dialogue with our customers and users, and they've shown interest in the NoSQL technologies," said Tomas Ulin, Oracle vice president of MySQL engineering. Oracle hopes MySQL can offer NoSQL speeds and scalability while still being a fully relational database.
"We can combine the best worlds. You don't have to split your data sets or have two databases," Ulin said.
During development of this latest release, which lasted about two years, Oracle accelerated work on a number of enhancements that should make MySQL more competitive with NoSQL data stores, which have grown in popularity over the past few years.
MySQL now offers a way to more quickly access data, by way of the Memcached API (application programming interface). MySQL doesn't actually use Memcached but harnesses its API -- familiar to many system administrators -- as an interface to fetch data directly from the database, without going through the database engine. The approach can deliver data up to nine times more quickly, for data that does not need to be parsed by SQL.
Another new feature that should give MySQL a bit more parity with NoSQL is the ability to execute DDL (Data Definition Language) operations without taking offline the database tables being changed. Administrators can alter a schema, add or drop a column, or rename a column, all without taking the database offline. NoSQL products have been praised for these sorts of dynamic schema updates, which MySQL will now offer as well.
Other new features in MySQL 5.6 include the ability to optimize subqueries, or nested queries, which can otherwise take prohibitively long to execute. The diagnostics are more comprehensive, through an expanded EXPLAIN query. The database also offers an index for full text searches, so searches can be done within large fields of text without actually doing a full table scan, which takes longer.
For high availability, MySQL 5.6 has global transaction identifiers, which simplify the process of failing over to a backup database server. The MySQL Workbench now includes a set of Python code that monitors master-slave database sets and can automatically switch operations to the backup server should the primary database fail.
The software can now run across 48-core servers, up from 32 cores in MySQL 5.5. While not many are running the database across such large systems, Oracle anticipates they will be in years to come. "We need to be a little bit ahead of the curve when scaling out," Ulin said.
Ulin wouldn't say what changes are coming in MySQL 5.7, saying the development team is still in the early planning stages.