MySQL 5.6 is GA! Now we have new things to play with and in my personal opinion the most interesting one is the new Global Transaction ID (GTID) support in replication. This post is not an explanation of what is GTID and how it works internally because there are many documents about that: http://dev.mysql.com/doc/refman/5.6/en/replication-gtids-concepts.html One [...]
Debugging MySQL SSL problems
This is not necessarily going to be a comprehensive post, but I learned somethings about MySQL SSL today that I thought would be worth sharing. I was setting up a PRM install for a customer and one of the requirements was SSL replication. In this particular case, I had setup PRM first, and then was [...]
Logging Deadlock errors
The principal source of information for InnoDB diagnostics is the output of SHOW ENGINE INNODB STATUS but there are some sections that are not very useful. For example, LATEST DETECTED DEADLOCK only shows, as the name implies, the latest error detected. If you have 100 deadlocks per minute you will be able to see only [...]
How to lag a slave behind to avoid a disaster
MySQL Replication is useful and easy to setup. It is used for very different purposes. For example: split read and writes run data mining or reporting processes on them disaster recovery Is important to mention that a replication server is not a backup by itself. A mistake on the master, for example a DROP DATABASE [...]
Percona XtraDB Cluster reference architecture with HaProxy
This post is a step-by-step guide to set up Percona XtraDB Cluster (PXC) in a virtualized test sandbox. I used Amazon EC2 micro instances, but the content here is applicable for any kind of virtualization technology (for example VirtualBox). The goal is to give step by step instructions, so the setup process is understandable and [...]
How to replace a NDB node on EC2
NDB cluster is a very interesting solution in term of high availability since there are no single point of failure. In an environment like EC2, where a node can disappear almost without notice, one would think that it is a good fit. It is indeed a good fit but reality is a bit trickier. The [...]
Poor man’s query logging
Occasionally there is a need to see what queries reach MySQL. The database provides several ways to share that information with you. One is called general log activated with
1 | --log |
(or
1 | --general-log |
in MySQL 5.1+) start-up parameter. The log writes any query being executed by MySQL to a file with limited amount of additional information. [...]
Cache Performance Comparison
Jay Pipes continues cache experiements and has compared performance of MySQL Query Cache and File Cache. Jay uses Apache Benchmark to compare full full stack, cached or not which is realistic but could draw missleading picture as contribution of different components may be different depending on your unique applications. For example for application containing a [...]

