You may have heard of Amazon Aurora, a custom built MySQL and PostgreSQL compatible database born and built in the cloud. You may have also heard of serverless, which allows you to build and run applications and services without thinking about instances. These are two pieces of the growing AWS technology story that we’re really excited to be working on. Last year, at AWS re:Invent we announced a preview of a new capability for Aurora called Aurora Serverless. Today, I’m pleased to announce that Aurora Serverless for Aurora MySQL is generally available. Aurora Serverless is on-demand, auto-scaling, serverless Aurora. You don’t have to think about instances or scaling and you pay only for what you use.
MySQL without the MySQL: An introduction to the MySQL Document Store | Opensource.com https://opensource.com/article/18/6/mysql-document-store
This takes advantage of the json storage column feature available in MySQL 5.7+.
MySQL introduced a native JSON data type in MySQL 5.7. So like an integer, a char, or a real, there became a way to store an entire JSON document in a column in a table of a database—and this document in a column could be roughly a gigabyte in size! The server would make sure it was a valid JSON document and then save it in a binary format that’s optimized for searching. This new data type has probably been responsible for more upgrades of MySQL than any other feature.
The data type also comes with over 20 functions. These functions will extract key-value pairs from the document, update data, provide metadata about the data, output non-JSON columns in JSON format, and more. And it’s much easier on the psyche than REGEX.
Well, I guess I really do need to update to MySQL 5.7 and keep track of what’s going on in version 8 development.
From the MySQL 5.7 docs on the JSON data type:
As of MySQL 5.7.8, MySQL supports a native
JSONdata type provides these advantages over storing JSON-format strings in a string column:
- Automatic validation of JSON documents stored in
JSONcolumns. Invalid documents produce an error.
- Optimized storage format. JSON documents stored in
JSONcolumns are converted to an internal format that permits quick read access to document elements. When the server later must read a JSON value stored in this binary format, the value need not be parsed from a text representation. The binary format is structured to enable the server to look up subobjects or nested values directly by key or array index without reading all values before or after them in the document.
I’ve got a number of project that would benefit from this right now.
MySQL has a built-in slow query log. To use it, open the my.cnf file and set the slow_query_log variable to “On.” Set long_query_time to the number of seconds that a query should take to be considered slow, say 0.2. Set slow_query_log_file to the path where you want to save the file. Then run your code and any query above the specified threshold will be added to that file.
Enter RocksDB and the LSM (Log Structured Merge) technology: we are entering a new planet as far as data storage goes. The idea of an “append only” type of approach for writing database rows is something I never heard before. Databases usually are the most random writer ever! And although SSD will not suffer from write randomness, there are other factors that need to be taken into consideration. I’ll not go into more details about how LSM or RocksDB work, or why LSM is good for your SSD and your workload, as there is plenty of information about it on Mark’s blog (see above) or on the official page for RocksDB and for MyRocks (the RocksDB engine for MySQL) on GitHub; just check the Wiki there.
MyRocks and RocksDB sound like something worth exploring even for our small big data tables.
Why Uber Engineering Switched from Postgres to MySQL – Uber Engineering Blog https://eng.uber.com/mysql-migration/
Amazon Aurora Update – Create Cluster from MySQL Backup | AWS Blog https://aws.amazon.com/blogs/aws/amazon-aurora-update-create-cluster-from-mysql-backup/
Dragon: A distributed graph query engine | Engineering Blog | Facebook Code | Facebook https://code.facebook.com/posts/1737605303120405/dragon-a-distributed-graph-query-engine/
PHP MySQL JSON Manager: Build and Execute SQL queries with results in JSON – PHP Classes http://www.phpclasses.org/package/9512-PHP-Build-and-Execute-SQL-queries-with-results-in-JSON.html