In this blog I’ll explain the big wins that come with the MySQL Document Store in the MySQL 8.0 GA.
Basically
SQL + NOSQL
= Winning Combination
= Relational + Document Store + Hybrid
= Big Win For Devs
= Big Win for DBAs
= Big Win for Data Analysts
= Big Win for LOB owners
First, let’s start by considering some modern software facts
- Move faster, change rapidly
- Time to market is critical
- Rapid prototyping, iterate fast and frequently
- Relational Models ask for schema up front
- Potentially saving time later
- Less variation, less code for edge cases
- Easy to run in-depth analytics
- Document Models do not ask for a schema
- Saves time up front
- Often adds operational costs in the long term
- Getting Analytics from the data can be way more work
- Most popular NoSQL database use similar data structures to relational databases (B+TREE)
- No inherent scalability advantages
Yet behind on key functionality - Standing up multiple database technologies adds complexity for operations teams
Customers continually tell us they want to simplify their data infrastructure. They want a single database that does both NoSQL and SQL, with ACID Transaction guarantees. They do not want the complexity of adding yet another database product to an already complex stack.
Before 8.0 – many were often forced to choose multiple database solutions – SQL and NoSQL to meet both Relational and JSON Document Store challenges. Again, running multiple databases flavors is a big challenge – more software to qualify, data gets spread out, data movement overhead, hard to master many technologies, hard to secure and audit data protection, and hard to follow data access, etc., etc.
So to address the “multiple flavors of databases” dilemma, we built both support for SQL and NOSQL into MySQL database across all levels for the database stack – storage, structure, protocol, APIs, Tools, etc.
The 8.0 GA includes some new components to support SQL/NOSQL
- MySQL X Plugin – to support a new doc store friendly protocol and more
- A new developer API that we call “DevAPI” that makes it easy to work with MySQL 8 documents and collections
- New 8.0 releases of all of our connectors with full support for this new DevAPI (except for ODBC). This includes a brand new Connector/Node.JS!
- A brand new shell experience that allows working in SQL, Python, or Javascript
With these new options and features that we have added to MySQL, your business can have both schema-less and schema on the same technology stack – MySQL.
Checking off all the critical boxes of SQL and NoSQL for developers, operations, and LOB teams.
Developers:
[ x ] Schemaless
[ x ] Rapid Prototyping
[ x ] Document Model
Operations:
[ x ] Performance Management/Visibility
[ x ] Robust Replication, Backup, Restore
[ x ] Advanced Tooling Ecosystem
Business Owner:
[ x ] Don’t lose my data = ACID transactions
[ x ] Capture all my data = Extensible/Schemaless
[ x ] Products On Schedule/Time to Market = Rapid Development
With 8 you get a full stack making MySQL a “First Class” solution for Document Stores and more – like it is for relational. That meant adding
- Native JSON Datatype, BSON Storage, Indexes on JSON Documents
- New protocol supporting expanded capabilities needed for this and more
- New CRUD-style API unifying JSON document and table access – in addition to SQL
- Document Collections with Key Value Semantics
- Interactive Shell “MySQL Shell” – Javascript, Python, SQL modes
- Connectors that include Fluent NoSQL CRUD APIs
- Java, New NodeJS, NET, C++/C, PHP, Python, as well as other community
- Method Chaining and Pipelining
- Supports Combined Document and Relational
With these additions, and more to come, MySQL can take you beyond relational – fully embracing a
- Document Store Stack
- Relational Stack
- Hybrid Stack – Collections and Tables data working together
Leveraging the flexibility of Document Stores with the power of the analytics, the stability of ACID, and proven performance. All together.
Lots of Wins
- Developers Win – You get JSON with Fluent CRUD APIs across most languages
- DBAs Win – Avoid being stretched across to many types of databases. Avoid the “Jack of all trades, master of none” issue – Focus on MySQL
- Data Analysts Win – Get to all the data. Design with whichever tool works best. SQL is powerful, proven analytics, etc., but then maybe sometimes NoSQL methods work as well.
- LOB owners Win – products to market sooner, security, data integrity
Finally – we want to thank all those who provided feedback during the DMRs (aka Pre-GA releases) of the various parts of the MySQL Document Store. Very critical and much appreciated. Keep the requests coming.
Also – a big thanks to devs with new drivers to release or in progress in the MySQL Community.
Interested in learning more. Here’s a few links to check out.
- Using MySQL as a Document Store – Manual
- X DevAPI – Tutorial for JavaScript
- X DevAPI – Tutorial for Python
- Reference Manuals for Connectors and APIs – Node.js, Java, .NET, C++, Javascript,
- X Dev API User Guide
- MySQL Connector Team Blogs
- MySQL Release Engineering Team Blogs
If you’ve got questions, ideas, needs, or feedback. Want to create a new driver. etc.
Please feel free to contact us on
Thank you for using MySQL !