MySQL Review

Its strength is in the fast connection, query and insert performance. The weakest link is replication.

What is our primary use case?

Used as a data store for RESTful web services and other web applications. Was deployed to store RSS feeds, and for 100 joomla instances. 

How has it helped my organization?

MySQL is widely supported. We were able to integrate it with several different projects using various different programming languages with no issues.

Worked with Java, Perl, PHP, C# and C code. 

What is most valuable?

MySQL’s strength is in its fast connection, query and insert performance. I’ve benchmarked MySQL against several NoSQL and SQL databases and found it to be faster for getting lots of data inserted quickly.

What needs improvement?

The weakest link is replication. MySQL’s replication is touchy and doesn’t support master-to-master setups.

MySQL’s replication was implemented by playing back SQL statements getting executed on the master database node. That means if a slave node gets behind, it has to catch up by running every SQL query that has executed on the master. When the slave gets too far out of date, it is unable to catch up because the replication log is lost. 

Master to master replication is used to allow writes to either node in the cluster (INSERT, UPDATE, DELETE).  Since MySQL does not support this, you can only safely send SELECT queries to slave nodes.  If you run an insert, update or delete against the slave node, then it is out of sync with the master and may break if a later replication event comes from the master on the same table.

For how long have I used the solution?

More than five years.

What do I think about the stability of the solution?

I’ve had an issue where an InnoDB database grew too big and got corrupted. I was unable to recover it because there was not enough space on the server either. Be sure to have enough space.

What do I think about the scalability of the solution?

We did encounter some scalability issues as it has limited clustering support, it requires scaling up rather than out to some degree. Of course, you can have read replicas. It also has a fall-off on performance with very high workloads, but it takes awhile to get there.

Which solutions did we use previously?

MySQL has replaced Microsoft SQL Server in several cases. MySQL is easier to manage and much more cost-effective.

How was the initial setup?

The security model is different than the other databases.

What's my experience with pricing, setup cost, and licensing?

There are tuning and monitoring benefits for people who purchase MySQL rather than using the free version.

Which other solutions did I evaluate?

Looked at Microsoft SQL Server and PostgreSQL

What other advice do I have?

The porting code to or from MySQL is not that complicated, but the date type/format and functions are the biggest hurdles. Handling booleans data type is less efficient than the BIT type in the SQL Server.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
Add a Comment
Sign Up with Email