Recently, we have been receiving regular consulting requests about MySQL or MariaDB environments. The industries where the problems arise vary and the type and size of the organization are very diverse. From large payment platforms, comparison sites, booking platforms, sporting events to crowd control and e-commerce or SaaS environments. However, the theme is the same in many cases: performance issues due to growth.
MySQL is very approachable in part because of the LAMP stack, and for a variety of reasons (read this blog by Kinsta) is exceptionally good at supporting websites and web applications. It is relatively easy to set up and deploy a MySQL or MariaDB database. Set everything to default, both your server configuration and your database settings and... pop it.
Ew, I'm growing
However, in many cases insufficient thought is given to this during construction - is our experience - and what ultimately leads to problems are the consequences of growth in use and number of transactions in the event of success. Growth causes all sorts of performance issues, slow queries, latency, broken connections, et cetera. Long story short: things get slow and then try to figure out why. In many cases, a developer or a DBA has already twisted some knobs and changed some parameters, with in as many cases no or even worse results. And it gets even more complex when you also have clusters, High Availability, Failover, master-slave configurations set up.
These problems cause the production environment to suffer and even business operations begin to fall victim to their own success. Because very important things were omitted at the start of the project or the construction of the website or application, it is now going to take serious time, energy and money to save the business. Reversed engineering, revision or even setting up a - new - data model, including a proper table structure, a good indexing plan, of course, basic performance tuning and, in some extreme situations, a migration to a completely new database built from scratch.
We believe that you can do things in advance to avoid these woes by building and setting up your environment based on your (most ideal and positive) expectations. Better to be too big, too wide and too broad, than to be too tight and, due to thrift or lack of knowledge, to have to incur a multiple cost to repair later on. Involving a consultancy organization such as OptimaData in your plans and getting advice, having it look over your shoulder, having a second opinion performed during the development of your project can seriously prevent headaches. In addition, management is important. Make sure you regularly - monthly - check if your database is still the best database for your application, website or software. This way you can anticipate and let your database grow along with usage. We can, for example, assist with a monthly HealthCheck.
Ever consider a trusted advisor?
Of course you can always call if the problems get too big. We are happy to help and work with you as a trusted advisor who gives you monthly advice and grows with your environment so you don't have to put out a fire ad hoc with all its consequences. Call or email us to get acquainted.
In the next blog we will take a closer look at settings, operating-system tuning and give you concrete tips. Stay tuned!