Jan 02, 2024 |
Insight for DBAs, MySQL
TL&DR: Depending on the workload, the thread pool plugin can cause serious performance drops. This post was motivated by two recent cases I’ve worked with. Two setups running in cluster mode: one in MariaDB+Galera and one with Percona XtraDB Cluster (Percona Server+Galera). In both cases, the clusters had the thread pool plugin enabled and were […]
May 01, 2023 |
Cloud, Insight for DBAs, MySQL
Default settings can help you get started quickly – but they can also cost you performance and a higher cloud bill at the end of the month. Want to save money on your AWS RDS bill? I’ll show you some MySQL settings to tune to get better performance, and cost savings, with AWS RDS. Recently […]
Mar 24, 2022 |
Insight for DBAs, MySQL
For a very long part of its history, MySQL replication has been limited in terms of performance. Because there was no way of knowing if transactions or updates were independent, the updates had to be executed on a replica following the exact same sequence of operations as on the primary server. The only way to […]
Jan 05, 2022 |
Insight for DBAs, MySQL
Recently we were asked to check the performance of the new family of AMD EPYC processors when using MySQL in Google Cloud Virtual Machines. This was motivated by a user running MySQL in the N1 machines family and willing to upgrade to N2D generation considering the potential cost savings using the new AMD family. The […]
Sep 21, 2021 |
Benchmarks, Cloud, Insight for DBAs, MySQL
Primary Key design is an important thing for InnoDB performance, and choosing a poor PK definition will have an impact on performance and also write propagation in databases. When this comes to Aurora, this impact is even worse than you may notice. In short, we consider a poor definition of a Primary Key in InnoDB […]
Apr 27, 2021 |
Insight for DBAs, MySQL
DBAs are important cogs in the availability, performance, and security of your data. Getting a great DBA is one of the most important things any company can do to ensure their database operations continue working without a problem. So how do you find great DBAs? In this post I’m going to show you some of […]
Sep 30, 2020 |
Insight for DBAs, MySQL, Storage Engine
In this post, we will discuss what to do when you add more memory to your instance. Adding memory to a server where MySQL is running is common practice when scaling resources. First, Some Context Scaling resources is just adding more resources to your environment, and this can be split in two main ways: vertical […]
May 14, 2020 |
Insight for DBAs, MySQL
In this post, the third in a series explaining the internals of InnoDB flushing, we’ll focus on tuning. (Others in the series can be seen at InnoDB Flushing in Action for Percona Server for MySQL and Give Love to Your SSDs – Reduce innodb_io_capacity_max!) Understanding the tuning process is very important since we don’t want to […]
Jan 22, 2020 |
Insight for DBAs, MySQL, Percona Software, Storage Engine
As the second part of the earlier post Give Love to Your SSDs – Reduce innodb_io_capacity_max! we wanted to put together some concepts on how InnoDB flushing works in recent Percona Server for MySQL versions (8.0.x prior to 8.0.19, or 5.7.x). It is important to understand this aspect of InnoDB in order to tune it […]
Dec 18, 2019 |
Insight for DBAs, MySQL, Storage Engine
The innodb_io_capacity and innodb_io_capacity_max are often misunderstood InnoDB parameters. As consultants, we see, at least every month, people setting this variable based on the top IO write specifications of their storage. Is this a correct choice? Is it an optimal value for performance? What about the SSD/Flash wear leveling? Innodb_io_capacity 101 Let’s begin with what […]
Feb 12, 2019 |
MariaDB, MySQL
Recently, I had to work on an emergency for a customer who was having a problem restarting a MariaDB Galera Cluster. After a failure in the cluster they decided to restart the cluster entirely following the right path: bootstrapping the first node, and then adding the rest of the members, one by one. Everything went […]
Jan 07, 2019 |
MySQL
Since 5.7.12 MySQL includes what is called the X plugin, but also it includes X protocol and X DevApi. But what is all this and how does it work? Let me share a personal short story on how I found myself investigating this feature. In a previous post I wrote about the MySQL Router tool, and […]
Jul 20, 2018 |
Insight for DBAs, Insight for Developers, MySQL
Welcome to the third part of this series. I’m glad you’re still reading, as hopefully this means you find this subject interesting at least. Previously we presented the first two components of MySQL InnoDB Cluster: Group Replication and MySQL Router and now we will discuss the last component, MySQL Shell. MySQL Shell This is the last […]
Jul 16, 2018 |
Insight for DBAs, MySQL, Open Source
MySQL InnoDB Cluster is an Oracle High Availability solution that can be easily installed over MySQL to provide high availability with multi-master capabilities and automatic failover. In the previous post we presented the first component of InnoDB Cluster, group replication. Now we will go through the second component, MySQL Router. We will address MySQL Shell in a final […]
Jul 09, 2018 |
Insight for DBAs, MySQL
Since MySQL 5.7 we have a new player in the field, MySQL InnoDB Cluster. This is an Oracle High Availability solution that can be easily installed over MySQL to get High Availability with multi-master capabilities and automatic failover. This solution consists in 3 components: InnoDB Group Replication, MySQL Router and MySQL Shell, you can see […]
Apr 10, 2018 |
Insight for DBAs, MySQL
In this blog post, we’ll look at options for migrating database charsets to utf8mb4. Migrating charsets, in my opinion, is one of the most tedious tasks in a DBA’s life. There are so many things involved that can screw up our data, making it work is always hard. Sometimes what seems like a trivial task […]
Nov 11, 2016 |
MySQL
This blog post was motivated by an internal discussion about how to fully disable query cache in MySQL. According to the manual, we should be able to disable “Query Cache” on the fly by changing
query_cache_type to 0, but as we will show this is not fully true. This blog will show you how to properly disable “query […]
Oct 29, 2015 |
Insight for DBAs, MySQL
During the last few weeks I’ve been testing and playing a bit with the new group-replication plugin available for MySQL 5.7. Before continuing I’d like to clarify some aspects: the plugin is only available in labs and is not yet ready for production. The current version is 0.6. I used 5.7.9 GA running in a Vagrant 3 […]
Jul 29, 2015 |
Benchmarks, Insight for DBAs, MySQL
MySQL 5.7 comes with a new set of features and multi-source replication is one of them. In few words this means that one slave can replicate from different masters simultaneously. During the last couple of months I’ve been playing a lot with this trying to analyze its potential in a real case that I’ve been […]
May 04, 2015 |
Insight for DBAs, MariaDB, MySQL
MySQL replication isn’t perfect and sometimes our data gets out of sync, either by a failure in replication or human intervention. We are all familiar with Percona Toolkit’s pt-table-checksum and pt-table-sync to help us check and fix data inconsistencies – but imagine the following scenario where we mix regular replication with the Tungsten Replicator: We […]