You are here

MySQL Performance Blog

MySQL Performance Blog
Checked: 2 hours 49 min ago
Updated: 2 hours 49 min ago
Update every: 2 hours

Subscribe to MySQL Performance Blog

Wanted: Better memory profiling for MySQL

MySQL Performance Blog - Mon, 19/05/2008 - 5:40am

Quite frequently I would log in to customers system and find MySQL using too much memory. I would look at memory consumed by Innodb (it is often higher than innodb_buffer_pool_size) substract memory used by other global buffers such as query_cache_size and key_buffer and will in many cases see some mysterous memory which I can’t really explain. It can be several Gigabytes accounting for over 50% of memory usage of MySQL in some cases, though typically it is much smaller fraction.

Concurrent inserts on MyISAM and the binary log

MySQL Performance Blog - Thu, 15/05/2008 - 12:22am

Recently I had an interesting surprise with concurrent inserts into a MyISAM table. The inserts were not happening concurrently with SELECT statements; they were blocking and the process list was filling up with queries in Locked status.

MySQL Is back to Open Source Camp ?

MySQL Performance Blog - Wed, 14/05/2008 - 6:11am

Looking at Kaj’s Blog Annoucement MySQL has pulled back on the plans to release portions of the servers as Open Source only.

I am extremely happy to hear these news ! This is good for MySQL as a company, MySQL customers and MySQL users.

I’m hoping Community feedback was serious contributer to this decision, though I know there were a lot of Internal discussions as well. In any case this sends a great message to community - Speak up and you may be heard.

MySQL Performance Engineer opening

MySQL Performance Blog - Tue, 13/05/2008 - 10:15pm

As you know we love to analyze performance of various MySQL features, benchmark, compare, analyze things and post our findings on MySQL Performance Blog. However recently we got too busy with serving out customers and the backlog of things to take a look and write about is just growing larger and larger. So we decided to hire someone who could focus on such tasks.

What are we expecting from MySQL Performance Engineer ?

Quickly preloading Innodb tables in the buffer pool

MySQL Performance Blog - Fri, 02/05/2008 - 6:13am

In the previous post I mentioned a way I use to preload Clustered Index (data) for Innodb tables. Though I thought this topic would benefit from a bit more information.

Learning about MySQL Table Fragmentation

MySQL Performance Blog - Fri, 02/05/2008 - 5:57am

Recently I was working with the customer who need quick warmup - to get Innodb table fetched in memory as fast as possible to get good in memory access performance.

To do it I run the query: “SELECT count(*) FROM tbl WHERE non_idx_col=0″ I use this particular form of query because it will do full table scan - running count(*) without where clause may pick to scan some small index instead.

T2000 CPU Performance - Watch out

MySQL Performance Blog - Thu, 01/05/2008 - 5:00pm

Sun is aggressively pushing T2000 as Scalable MySQL Platforms, and indeed it is Scalable in terms of high concurrency workloads - it is able to execute a lot of concurrent threads and so speed gain from 1 thread to say 32 thread will be significant.

But thing a lot of people miss is - Being Scalable is Not Enough - you need to scale from reasonable base to claim the good performance, and this is where T2000 performs subpar in many cases.

Can having information public hurt consulting business ?

MySQL Performance Blog - Thu, 01/05/2008 - 6:33am

People frequently ask me if the fact we keep information public can hurt our consulting business ? Lets keep aside for the moment amount of new business publishing this information brings to us but think it also have significant negative effect because people find information on MySQL Performance Blog and use it instead of purchasing our services ?

Percona Team presentations from MySQL Users Conference 2008 published

MySQL Performance Blog - Thu, 01/05/2008 - 3:08am

If you’ve missed our presentations on MySQL Users Conference you can catch up now by taking a look at the slides, which are now published in presentations section of our company web site. You can also find a lot of old presentations in the same location.

Enjoy !

Entry posted by peter | No comment

MySQL Replication vs DRBD Battles

MySQL Performance Blog - Tue, 29/04/2008 - 3:50am

Well these days we see a lot of post for and against (more, more) using of MySQL and DRBD as a high availability practice.

The MySQL optimizer, the OS cache, and sequential versus random I/O

MySQL Performance Blog - Tue, 29/04/2008 - 2:18am

In my post on estimating query completion time, I wrote about how I measured the performance on a join between a few tables in a typical star schema data warehousing scenario.

In short, a query that could take several days to run with one join order takes an hour with another, and the optimizer chose the poorer of the two join orders. Why is one join order so much slower than the other, and why did the optimizer not choose the faster one? That's what this post is about.

How multiple disks can benefit for single client workload ?

MySQL Performance Blog - Sun, 27/04/2008 - 6:01am

Let us talk few more about disks. You might have read my previous post and Matt’s Reply and it looks like there are few more things to clarify and explain.

Is disk Everything for MySQL Performance ?

MySQL Performance Blog - Fri, 25/04/2008 - 7:20am

I read very nice post by Matt today and it has many good insights though I can’t say I agree on all points.

MySQL Architecture meeting at Google

MySQL Performance Blog - Fri, 25/04/2008 - 6:20am

Friday after MySQL Users Conference we had a smaller meeting at Google campus to talk about MySQL architecture mainly focusing on storage engine vendors and other extension areas.

MySQL extensions for hosting

MySQL Performance Blog - Thu, 24/04/2008 - 10:59am

A few weeks ago I was asked to isolate some functionalities from Mark Callaghan’s MySQL patch bundle. They were extensions adding per-user and per-table accounting to the database, accessible with a new set of commands such as SHOW TABLE_STATISTICS, SHOW INDEX_STATISTICS and SHOW USER_STATISTICS. The first two can interest anyone to periodically check what data or which index are the most active or which are not being used at all and could be candidates for dropping.

Efficient Boolean value storage for Innodb Tables

MySQL Performance Blog - Thu, 24/04/2008 - 6:25am

Sometimes you have the task of storing multiple of boolean values (yes/now or something similar) in the table and if you get many columns and many rows you may want to store them as efficient way as possible.
For MyISAM tables you could use BIT(1) fields which get combined together for efficient storage:

Conference for MySQL Users

MySQL Performance Blog - Thu, 24/04/2008 - 5:28am

If you're following PlanetMySQL you've already seen Baron's post about MySQL Conference which many of us just have returned from.

Real-Life Use Case for “Barracuda” InnoDB File Format

MySQL Performance Blog - Wed, 23/04/2008 - 9:28pm

In one of his recent posts Vadim already gave some information about possible benefits from using new InnoDB file format but in this post I’d like to share some real-life example how compression in InnoDB plugin could be useful for large warehousing tasks.

Testing InnoDB “Barracuda” format with compression

MySQL Performance Blog - Wed, 23/04/2008 - 4:53pm

New features of InnoDB - compression format and fast index creation sound so promising so I spent some time to research time and sizes on data we have on our production. The schema of one of shards is

How to estimate query completion time in MySQL

MySQL Performance Blog - Wed, 23/04/2008 - 1:41am

Have you ever run a query in MySQL and wondered how long it'll take to complete? Many people have had this experience. It's not a big deal until the query has been running for an hour. Or a day and a half. Just when IS that query going to finish, anyway?

There are actually a few ways to estimate how long it'll take for the query to complete, depending on what the query is. One of the simplest is to estimate how many rows the query needs to examine, measure how fast it's working, and do the math.

MySQL and plugin binaries

MySQL Performance Blog - Mon, 21/04/2008 - 6:05am

It seems there is interesting problem with compatibility of MySQL binaries and binaries of third-party plugins.

I personally found and there is confirmation from InnoDB team that current InnoDB-plugin binaries do not work with lastest 5.1.24-rc binaries. It was very charming move from MySQL side to release new incompatible binary on the second day after the announce of InnoDB plugin. I do not think it was intentional, but still looks funny and shows broken communication between teams.

Updated msl (microslow) patch, installation walk-through!

MySQL Performance Blog - Sun, 20/04/2008 - 12:38pm

For a couple of months there have been no updates to our msl patch, however recently I managed some time to change this. The functionality was extended a little bit and what’s even more important the patch is available for all the recent MySQL releases.

Idea: Couple of more string types

MySQL Performance Blog - Fri, 18/04/2008 - 11:43pm

MySQL has a lot of string data types - CHAR, VARCHAR, BLOB, TEXT, ENUM and bunch of variants such as VARBINARY but I think it is not enough :)

All thouse new MySQL Storage Engines

MySQL Performance Blog - Thu, 17/04/2008 - 6:09pm

MySQL Users Conference 2008 has number of Storage Engines presented which claim to Kick Ass. Walking in exhibition hall you could see KickFire, Infobright, Tokutek, ScaleDB. I have not seen NitroDB in the exhibition call this year but they are also worth to mention.
It is interesting to see all of them showing benchmarks with great numbers and glossy marketing materials explaining why they are better.

A note about Pythian

MySQL Performance Blog - Thu, 17/04/2008 - 4:22pm

On Monday I had a chance to have a chat with Paul Vallee from Pythian. This was quite an enlightening talk, and I was very impressed by Paul openness and willing to share with me a lot of internal operations details. I wish there would be more people out where as open and helpful even when it comes to somewhat competing businesses. Though he is of course right - for small companies as we are there is much more business out where which is neither ours nor theirs and by being helpful to each other we can increase part of the pie to share.


Subscribe to MySQL Performance Blog