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 [...]
Flexviews – part 3 – improving query performance using materialized views
Using Flexviews – part two, change data capture
In my previous post I introduced materialized view concepts. This post begins with an introduction to change data capture technology and describes some of the ways in which it can be leveraged for your benefit. This is followed by a description of FlexCDC, the change data capture tool included with Flexviews. It continues with an [...]
MySQL Limitations Part 3: Subqueries
This is the third in a series on what’s seriously limiting MySQL in certain circumstances (links: part 1, 2). This post is about subqueries, which in some cases execute outside-in instead of inside-out as users expect.
Data mart or data warehouse?
This is part two in my six part series on business intelligence, with a focus on OLAP analysis. Part 1 – Intro to OLAP Identifying the differences between a data warehouse and a data mart. (this post) Introduction to MDX and the kind of SQL which a ROLAP tool must generate to answer those queries. [...]
How is join_buffer_size allocated?
When examining MySQL configuration, we quite often want to know how various buffer sizes are used. This matters because some buffers (sort_buffer_size for example) are allocated to their full size immediately as soon as they are needed, but others are effectively a “max size” and the corresponding buffers are allocated only as big as needed [...]
Joining on range? Wrong!
The problem I am going to describe is likely to be around since the very beginning of MySQL, however unless you carefully analyse and profile your queries, it might easily go unnoticed. I used it as one of the examples in our talk given at phpDay.it conference last week to demonstrate some pitfalls one may [...]
Is there a performance difference between JOIN and WHERE?
I’ve heard this question a lot, but never thought to blog about the answer. “Is there a performance difference between putting the JOIN conditions in the ON clause or the WHERE clause in MySQL?” No, there’s no difference. The following queries are algebraically equivalent inside MySQL and will have the same execution plan.
1 2 3 4 5 | SELECT * FROM A, B WHERE A.ID = B.ID; SELECT * FROM A JOIN B ON A.ID = B.ID; SELECT * FROM A JOIN B USING(ID); |
Personally, [...]
Star Schema Bechmark: InfoBright, InfiniDB and LucidDB
In my previous rounds with DataWarehouse oriented engines I used single table without joins, and with small (as for DW) datasize (see http://www.mysqlperformanceblog.com/2009/10/02/analyzing-air-traffic-performance-with-infobright-and-monetdb/, http://www.mysqlperformanceblog.com/2009/10/26/air-traffic-queries-in-luciddb/, http://www.mysqlperformanceblog.com/2009/11/02/air-traffic-queries-in-infinidb-early-alpha/). Addressing these issues, I took Star Schema Benchmark, which is TPC-H modification, and tried run queries against InfoBright, InfiniDB, LucidDB and MonetDB. I did not get results for MonetDB, will [...]
Percona welcomes Yves Trudeau and Fernando Ipar
I’m happy to extend a warm welcome to two new members of the Percona team.
First is Yves Trudeau, about whom I can say many things:
One of the top MySQL Cluster (NDB Cluster) experts in the world.
An expert on all things High Availability, including DRBD and Heartbeat.
Many years of experience with Huge Data.
Half of the Waffle Grid team.
A really nice person!
Yves joins us after a tenure of several years as a senior consultant at Sun/MySQL. Together with Matt Yonkovit, he plans to work on WaffleGrid (…
Announcing Percona Training Workshops for InnoDB and XtraDB
Today, we are announcing that we’re ready to offer training for InnoDB and XtraDB in Santa Clara and San Francisco. The course was developed by Morgan Tocker with input from all our team – and covers a lot of the performance problems we run through in our consulting practice. The Details: 14th Sept – Santa [...]

