by Stephane Combaudon | Sep 8, 2015 | MySQL, Percona Software
Percona Server 5.6.21+ and MySQL 5.7.8+ offer the super_read_only option that was first implemented in WebscaleSQL. Unlike read_only, this option prevents all users from running writes (even those with the SUPER privilege). Sure enough, this is a great feature, but...
by Stephane Combaudon | Aug 19, 2015 | MySQL
I have heard this question quite often: “At busy times, our replicas start lagging quite frequently. We are using N schemas, so which performance boost could we expect from MySQL 5.6 parallel replication?” Here is a quick way to give you a rough estimate...
by Stephane Combaudon | Aug 7, 2015 | Benchmarks, MySQL
During the last couple of months I have been involved in an unusually high amount of performance audits for e-commerce applications running with Magento. And although the systems were quite different, they also had one thing in common: the MySQL query cache was very...
by Stephane Combaudon | Jul 22, 2015 | MySQL, Percona Software
I recently worked with a customer who had a weird issue: when their MySQL server was started (Percona Server 5.5), if they try to run service mysql start a second time, the init script was not able to detect that an instance was already running. As a result, it tried...
by Stephane Combaudon | Jun 23, 2015 | MySQL, Percona Software
A question I often hear when customers want to set up a production PXC cluster is: “How many nodes should we use?” Three nodes is the most common deployment, but when are more nodes needed? They also ask: “Do we always need to use an even number of...
by Stephane Combaudon | Jun 12, 2015 | MySQL
Percona XtraDB Cluster (PXC) has become a popular option to provide high availability for MySQL servers. However many people are still having a hard time understanding what will happen to the cluster when one or several nodes leave the cluster (gracefully or...
by Stephane Combaudon | Jun 3, 2015 | Insight for DBAs, MySQL, Percona Software
Some applications have a heavy write workload on a few records – for instance when incrementing a global counter: this is called a write hotspot. Because you cannot update the same row simultaneously from multiple threads, this can lead to performance...
by Stephane Combaudon | May 26, 2015 | MongoDB
Storing time-series data is a frequent pattern for databases – be it for logs or for any kind of monitoring. Such data has the following properties: records are inserted but also never updated, the insertion rate can be high and records are likely to expire...
by Stephane Combaudon | May 8, 2015 | Insight for DBAs, MySQL
We discussed in an earlier post how to design indexes for many types of queries using a single table. Here is a real-world example of the challenges you will face when trying to optimize queries: two similar queries, but one is performing a full table scan while the...
by Stephane Combaudon | May 5, 2015 | MySQL
Being schemaless is one of the key features of MongoDB. On the bright side this allows developers to easily modify the schema of their collections without waiting for the database to be ready to accept a new schema. However schemaless is not free and one of the...
by Stephane Combaudon | Apr 28, 2015 | Insight for DBAs, MySQL, Percona Software
I often talk with people who are very interested in the features of Percona XtraDB Cluster (PXC) such as synchronous and parallel replication, multi-node writing and high availability. However some get confused when operating a real PXC cluster because they do not...
by Stephane Combaudon | Apr 27, 2015 | Insight for DBAs, MySQL
I have recently seen several cases when performance for MySQL queries on a single table was terrible. The reason was simple: the wrong indexes were added and so the execution plan was poor. Here are guidelines to help you optimize various kinds of single-table...
by Stephane Combaudon | Apr 1, 2015 | MySQL
Recently Todd Farmer shared an interesting story about the mysql command line prompt in MySQL 5.7: how it was changed to provide more context and why the change was finally reverted. This made me think that after using the command line client for MongoDB for awhile, I...
by Stephane Combaudon | Mar 19, 2015 | MongoDB, MySQL, Webinars
MongoDB 3.0 was recently released. Instead of focusing on what’s new – that is so easy to find, let’s rather talk about something that has not changed a lot since the early MongoDB days. This topic is sharding and most specifically: how to choose a...
by Stephane Combaudon | Mar 13, 2015 | Insight for DBAs, MySQL, Percona Software, Webinars
My webinar “Multi-threaded Replication in MySQL 5.6 and 5.7” on February 25 generated several excellent questions following the presentation (available an online migration to GTIDs and that’s why here.
by Stephane Combaudon | Mar 2, 2015 | Insight for DBAs, MySQL, Percona Software
From time to time people wonder how to implement roles in MySQL. This can be useful for companies having to deal with many user accounts or for companies with tight security requirements (PCI or HIPAA for instance). Roles do not exist in regular MySQL but here is an...
by Stephane Combaudon | Feb 19, 2015 | MySQL
In a previous post, titled “Multi-threaded replication with MySQL 5.6: Use GTIDs,” I explained that using GTID replication is almost a requirement when using MySQL 5.6 MTS. Let’s see now how to perform the day-to-day operations when MTS and GTIDs are...
by Stephane Combaudon | Feb 13, 2015 | MySQL, Percona Software
Say you have a cluster with 3 nodes using Percona XtraDB Cluster (PXC) 5.6 and one asynchronous replica connected to node1. If asynchronous replication is using GTIDs, moving the replica so that it is connected to node2 is trivial, right? Actually replication can...
by Stephane Combaudon | Feb 10, 2015 | Insight for DBAs, MySQL, Percona Software
Global Transaction IDs (GTIDs) are one of my favorite features of MySQL 5.6. The main limitation is that you must stop all the servers at the same time to allow GTID-replication. Not everyone can afford to take a downtime so this requirement has been a showstopper for...
by Stephane Combaudon | Jan 29, 2015 | Insight for DBAs, MySQL
MySQL 5.6 allows you to execute replicated events in parallel as long as data is split across several databases. This feature is named “Multi-Threaded Slave” (MTS) and it is easy to enable by setting slave_parallel_workers to a > 1 value. However if you...