What is our primary use case?
It's been used as a primary relational database for most applications. It's scalable and could easily be maintained and could be migrated to any Cloud-based Database as a Service solutions which are compatible with MySQL.e.g. AWS RDS MySQL, AWS RDS Aurora, Google SQL.
How has it helped my organization?
It has improved scalability, easy-maintenance. It is open-source and is easy to use.
What is most valuable?
MySQL is open-source. There are a lot of open-source communities trying to come up with their own patches, and to come up with their own features, which help MySQL develop faster than traditional databases like Oracle, which is closed source.
The solution is also compatible with a lot of other databases, like Percona, and it's compatible with MariaDB. It's also compatible with a lot of other shared database solutions.
Since MySQL is mostly used as a relational database in a lot of organizations, a lot of other solutions are being merged with MySQL and it's a rather easy process.
Unlike a lot of closed source services, the new features are solely based on customer feedback. The customer feedback of open source is way larger than the closed source application.
What needs improvement?
The developers of MySQL, which are Oracle MySQL, Percona, and MariaDB, seem to not be focusing much on object-oriented replication. Basically, replication is based on a text level of replication. There is a text level replication in Oracle, that is so similar it can be implemented in MySQL, however, it needs to pull a lot of resources. They have altered their approach for replication. Still, more focus on object-oriented replication would be good.
They should come up with a better solution than the NDB cluster for better scaling. If they could come up with a better solution for write scaling, apart from the NDB cluster, which is supported by all open source communities, that would be great. Although the NDB cluster, is an open-source tool, it's not widely supported as a solution.
The latest 8.0 version has come up with whole new features.
For how long have I used the solution?
I've been working on Relational Database MySQL throughout my career, i.e. for 14 years. This relational database MySQL is evolved from its MyISAM only engine to InnoDB and is now compatible with other database engines too. e.g. NDB, Galera.
What do I think about the stability of the solution?
MySQL is reliable. If you are talking about it in terms of relational databases, MySQL is pretty stable. If you want to go ahead with a quite secure database like any PCI database or a customer-related database or even financial data, it's still feasible to migrate to MySQL.
What do I think about the scalability of the solution?
There are a lot of features provided by Oracle MySQL, Percona, and MariaDB. They all have their own replication cluster. Percona has XtraDB, MariaDB has GaleraDB, Oracle MySQL has its own cluster as well. MySQL replication is common in all three MySQL flavors. MySQL replication is an excellent read-scalable feature, which has also evolved a lot from its earliest versions to the latest 8.0 version.
The NDB cluster, which has been supported and developed by Oracle, and is based on MySQL, is different than all of the other MySQL replication cluster solutions. It's both read and write scalable. All other cluster features work well for read scaling. NDB cluster is the only cluster feature recorded by Oracle MySQL, which is write scalable as well as re-scalable.
How are customer service and support?
The solution seems to have plenty of technical support due to the fact that there are three companies who are product owners, and therefore there are three companies who are supporting MySQL. They are: Oracle, Percona, and MariaDB. They're doing pretty well.
There are a lot of companies also that support their customers. This is the good thing about any software which is open-source. A lot of open source communities come up with their own features and they try to patch up with the original source.
How was the initial setup?
The initial setup has evolved a lot. It's pretty straight forward whether you're using Mac, Windows, Linux, etc. You can set it up on almost every operating system.
It's supported by the open-source community, and they have plenty of documentation online that users can reference for assistance. If you are working in almost any operating system and you have any questions related to the installation, you'll find the documentation you need.
What's my experience with pricing, setup cost, and licensing?
I am not sure, what the licensing costs are for the solution. From my experience, there is no straightforward cost. You can get that cost from the Oracle website about the Oracle MySQL licensing costs, however, it's not a straightforward price quote for everyone.
If you are an existing customer, you can negotiate and you can get a better quote. The pricing on the website may be for new customers. That said, you can still negotiate. The same is true for Percona and MariaDB as well.
What other advice do I have?
We are using MySQL 5.6, 5.7, and MySQL 8.0.
In terms of advice, I'd say when implementing MySQL, if a company has been using any previous relational database, like Oracle, Microsoft SQL or DB2, the easiest way to migrate from any database is from Oracle to MySQL. There'll be some challenges from Microsoft SQL, as well as from DB2 to MySQL. Any existing application which is working with the Oracle database as a backend database, DB2 database as a backend database, or Microsoft as the backend database, should still work fine with MySQL, with minimal code changes.
MySQL is a product supported by a lot of applications and a lot of organizations. Almost every client and every API would be able to support MySQL. There would still need to be a lot of testing, however, I feel almost all of the applications which need a relational database for their database solution, could leverage out of MySQL.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
Workbench is the original GUI for managing MySQL databases it allows to:
* Manage DB - it allows to administer a DB. (by creating a connection to a database).
* Model DB - It allows you to model your database using EER diagrams to represent tables and link between tables. EER diagrams can be transformed to a schema by creating SQL script from the EER diagram. EER diagram can be also produced from an existing DB, by connecting to a database and performing reverse engineering.
* Migrate DB - It also allows you to migrate from another DB to MySQL