MySQL 5.5 became generally available back in December 2010. Some of us may be guilty of missing out on these new versions when our repositories lag, understandably, behind in incorporating the latest versions of software. Thanks, CentOS. How in the world did I miss an update to the database I use every day that claims to now be "1500% faster"? As I began to dabble in the blasphemous world of NoSQL, the SQL gods pleasantly surprised me as I stumbled accidentally upon a MySQL 5.5 install.
Having inherited a very large website (and even larger database powering said website) early this year, my first goal was to boost performance. After pinpointing the sites almost crawling response time to the database, MySQL was an the chopping block in favor of a custom dose of NoSQL databases. After copying over the 4 GB database to a development server so that work could be started on the new back-end powered by these NoSQL databases, I noticed something odd. The same queries that crawled on the production server flew on the development server. Although the machines differed in hardware, nothing seemed to warrant the significant performance difference. Then I compared versions. MySQL 5.0 was on the production server, while 5.5 was on the development server. For some unknown reason, someone had installed MySQL 5.5 on the development server. I am glad they did. After noticing this difference, some additional comparisons were ran. Queries that took 10-30 seconds on the production server were performed in less than a second on the 5.5 development server. The decision was quickly made to upgrade the production server’s MySQL. After the upgrade, pageviews increased immediately by over 10%. Analytics showed no real change in the amount of visitors, but the time on site and pageviews per visitor were up 10-20%. This increase has remained over the past 60 days, and thus can be attributed to the increased performance of the site created solely by the upgrade from MySQL 5.0 to 5.5.
Despite MySQL backing up their claims of significant performance improvements, I am still struggling to justify utilizing MySQL for this particular project. One of the core aspects of the data fit perfectly into a graph database, while the other would thrive in a schema-less database. On a separate, but similar, project involving an equally large dataset, I have found that even MySQL 5.5 doesn’t stack up to MongoDB’s performance. A simple query against key-value pairs in MySQL fail to stack up to the same key-value pairs accompanied by actual data in an unsharded MongoDB instance. This is certainly a giant leap for MySQL, but will it be enough to hang with the onslaught of NoSQL databases? Post your thoughts here.