Everything You Need to Know About Scaling MySQL: Customer Issues With MySQL
Join the DZone community and get the full member experience.Join For Free
[This article was written by Dave Anselmi]
During the previous entries in this series, we discussed the various struggles that scaling a legacy MySQL database can cause and the options e-commerce sites have in combating those issues.
While any growing Web business can experience difficulties with scaling MySQL, some types of e-commerce sites are especially vulnerable to the inherent flaws and limitations of a scale-up relational model and resulting problems with MySQL performance. The following are three types of sites that we have seen grapple with customer-related MySQL performance issues:
Daily deals websites: A daily deal site—like Groupon or Ticketmaster, for example—must have all its data integrated (ACID compliance) because transactions are happening concurrently and thus impacting the total stock available. For example, if 10 items are available and a customer orders five, another customer viewing the same item should only see five left in stock. However, if the application reads from the read-slave instead of the write-master, the e-commerce site could sell 10 items to the second customer even though only five actually remain available for purchase.
Large catalog with many abandoned carts: Shopping cart abandonment is a common problem with e-commerce sites. Unfortunately with MySQL, a large number of abandoned carts can slow down the database as it reads an extremely large number of transactions occurring simultaneously, even though many are over for all intents and purposes. Additionally, the site’s Abandoned Cart functionality is conducting analytics to determine shopper habits and trends, then creating a promotional email to attempt to lure that shopper back to complete the purchase. Those analytics queries can be critical to winning back lost business, but they can also bring site performance to a grinding halt if the database is not robust.
Magento project with installed extensions and custom modules: Magento is a popular choice for e-commerce websites because it is relatively simple to use, even without significant technical prowess. Problems can arise, however, from the fact that scaling Magento with MySQL can be complex. Magento’s own knowledge center acknowledges that, “Getting Magento to be fast and scalable requires some knowledge of the underlying software stack…and a little custom development to optimize Magento’s caching for your specific use case.” Without that inherent knowledge, scaling with Magento can be problematic and cause performance issues for customers on e-commerce sites.
Want to learn more about how to provide your customers a top-notch experience on your rapidly growing e-commerce site and get maximum performance with Magento? Read this blog post!
Published at DZone with permission of Lisa Schultz, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.