Buy Percona ServicesBuy Now!

Webinar: SQL Query Patterns, Optimized

 | May 20, 2013 |  Posted In: MySQL, Technical Webinars

Next Friday, May 31 at 10 a.m. Pacific, I’ll present Percona’s next webinar, “SQL Query Patterns, Optimized.” Based on my experiences solving tough SQL problems for Percona training and consulting, I’ll classify several common types of queries with which developers struggle. I’ll test several SQL solutions for each type of query objective, and show how […]

Read More

Index Condition Pushdown in MySQL 5.6 and MariaDB 5.5 and its performance impact

 | March 12, 2012 |  Posted In: Benchmarks, Insight for DBAs, MySQL

I have been working with Peter in preparation for the talk comparing the optimizer enhancements in MySQL 5.6 and MariaDB 5.5. We are taking a look at and benchmarking optimizer enhancements one by one. So in the same way this blog post is aimed at a new optimizer enhancement Index Condition Pushdown (ICP). Its available […]

Read More

What does Handler_read_rnd mean?

 | June 15, 2010 |  Posted In: Insight for Developers, MySQL

MySQL’s SHOW STATUS command has two counters that are often confusing and result in “what does that mean?” questions: Handler_read_rnd Handler_read_rnd_next As I understand it, there is some historical context to the choice of names here, hearkening back to before I was involved with MySQL, way back when it was a wrapper around ISAM tables […]

Read More

A workaround for the performance problems of TEMPTABLE views

 | May 19, 2010 |  Posted In: Insight for Developers, MySQL

MySQL supports two different algorithms for views: the MERGE algorithm and the TEMPTABLE algorithm. These two algorithms differ greatly. A view which uses the MERGE algorithm can merge filter conditions into the view query itself. This has significant performance advantages over TEMPTABLE views. A view which uses the TEMPTABLE algorithm will have to compute the […]

Read More

Joining on range? Wrong!

 | May 17, 2010 |  Posted In: Insight for Developers, MySQL

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 […]

Read More

When the subselect runs faster

 | March 18, 2010 |  Posted In: Insight for Developers, MySQL

A few weeks ago, we had a query optimization request from one of our customer. The query was very simple like:

This column in the table is looks like this:

The table have 549252 rows and of course, there is an index on the col1. MySQL estimated the cardinality of that index as […]

Read More