Shard-Query is an open source tool kit which helps improve the performance of queries against a MySQL database by distributing the work over multiple machines and/or multiple cores. This is similar to the divide and conquer approach that Hive takes in combination with Hadoop. Shard-Query applies a clever approach to parallelism which allows it to [...]
Flexviews – part 3 – improving query performance using materialized views
Combating “data drift” In my first post in this series, I described materialized views (MVs). An MV is essentially a cached result set at one point in time. The contents of the MV will become incorrect (out of sync) when the underlying data changes. This loss of synchronization is sometimes called drift. This is conceptually [...]
Percona Server and XtraBackup weekly news, April 4th
Here’s the weekly review of Percona Server and XtraBackup news. Before I begin, let me briefly address a common question. We are sometimes asked about our plans in light of developments in the market such as MySQL 5.5, MariaDB, Drizzle, etc. The short answer is that we’re very happy with Oracle’s GPL’ed MySQL releases as [...]
Using Flexviews – part one, introduction to materialized views
If you know me, then you probably have heard of Flexviews. If not, then it might not be familiar to you. I’m giving a talk on it at the MySQL 2011 CE, and I figured I should blog about it before then. For those unfamiliar, Flexviews enables you to create and maintain incrementally refreshable materialized [...]
Performance problem with Innodb and DROP TABLE
I’ve been working with an application which does a lot of CREATE and DROP table for Innodb tables and we’ve discovered DROP TABLE can take a lot of time and when it happens a lot of other threads stall in “Opening Tables” State. Also contrary to my initial suspect benchmarking create/drop table was CPU bound [...]
MySQL Limitations Part 1: Single-Threaded Replication
I recently mentioned a few of the big “non-starter” limitations Postgres has overcome for specific use cases. I decided to write a series of blog posts on MySQL’s unsolved severe limitations. I mean limitations that really hobble it for major, important needs — not in areas where it isn’t used, but in areas where it [...]
The Doom of Multiple Storage Engines
One of the big “Selling Points” of MySQL is support for Multiple Storage engines, and from the glance view it is indeed great to provide users with same top level SQL interface allowing them to store their data many different way. As nice as it sounds the in theory this benefit comes at very significant [...]
Tuning for heavy writing workloads
For the my previous post, there was comment to suggest to test db_STRESS benchmark on XtraDB by Dimitri. And I tested and tuned for the benchmark. I will show you the tunings. It should be also tuning procedure for general heavy writing workloads. At first, <tuning peak performance>. The next, <tuning purge operation> to stabilize [...]
Finding your MySQL High-Availability solution – The definitions
As my first contribution to the MySQL Performance Blog, I joined Percona at the beginning September, I chose to cover the various high-availability (HA) options available for MySQL. I have done dozen of MySQL HA related engagements while working for Sun/MySQL over the last couple of years using Heartbeat, DRBD and NDB cluster and I’ll [...]
Onsite and Remote – getting best of both worlds
At Percona we provide services both Onsite – visiting the customers and Remote – logging in to their systems or communicating via email,phone,instant messaging. We believe both approaches have their benefits and drawbacks and mixing them right way allows you to get your problems solved most efficient way.

