You are here

MySQL Performance Blog

MySQL Performance Blog
Checked: 43 min 58 sec ago
Updated: 43 min 58 sec ago
Update every: 2 hours

Subscribe to MySQL Performance Blog

Percona team at Turkey

MySQL Performance Blog - Mon, 08/12/2008 - 7:26am

Being completely distributed team, meetings are very important for us and this time we went to the Turkey in the end of October (yes, yes I could be faster with sharing photos)

Percona, Turkey 2008

This went we went to Turkey, Antalya region, which is a destination which is very easy to reach from Europe as well as offering great all inclusive deals in the end of the season.

When to use Hardware upgrade instead of Software Optimization

MySQL Performance Blog - Fri, 05/12/2008 - 10:25pm

One typical question which frequently pops up is whenever it is better to use hardware upgrade or optimize software more. I already wrote about it, for example here.

Today I’ll look at the same topic from the consultants view. When consultant should suggest hardware upgrade and when it is not in a simple checklist form.

Tom Basil (formerly MySQL’s Director of Support) Joins Percona

MySQL Performance Blog - Thu, 04/12/2008 - 4:41pm

Percona has a new Chief Operating Officer! It is Tom Basil, who was Employee #11 at MySQL and led the Support organization there for almost eight years. He was the founding Director of Support at MySQL, and built it into a team of about 60 people all across the world. Tom was legendary as a manager at MySQL, and we’re really looking forward to his experience at Percona.

MySQL 5.0, 5.1 and Innodb Plugin CPU Efficiency

MySQL Performance Blog - Thu, 04/12/2008 - 6:00am

We’ve recently done benchmarks comparing different MySQL versions in terms of their CPU efficiently in TPC-C like Workload. We did it couple of weeks ago so MySQL 5.0.67, MySQL 5.1.29 and Innodb Plugin 1.0.1 were used which are not very recent, though we do not think results will differ a lot with today versions.

Results are as follows:

MySQL 5.0, 5.1, Innodb Plugin, TPC-C

Computing 95 percentile in MySQL

MySQL Performance Blog - Sat, 29/11/2008 - 6:21am

When doing performance analyzes you often would want to see 95 percentile, 99 percentile and similar values. The "average" is the evil of performance optimization and often as helpful as "average patient temperature in the hospital".

Lets set you have 10000 page views or queries and have average response time of 1 second. What does it mean ? Really nothing - may be one page view was 10000 seconds and the rest was in low milliseconds or may be you had every single page view taking 1 second, which are completely different.

MySQL for Hosting Providers - how do they manage ?

MySQL Performance Blog - Fri, 28/11/2008 - 10:24pm

Working with number of hosting providers I always wonder how do they manage to keep things up given MySQL gives you so little ways to really restrict how much resources single user can consume. I have written over a year ago about 10+ ways to crash or overload MySQL and since that people have come to me and suggested more ways to do the same.

A quick way to get memcached status

MySQL Performance Blog - Thu, 27/11/2008 - 2:32am

There are all sorts of different interfaces to memcached, but you don't need any of them to make requests from the command line, because its protocol is so simple. Try this, assuming it's running on the usual port on the local machine:

Thanks Giving Challenge: How to detect replication context

MySQL Performance Blog - Thu, 27/11/2008 - 1:31am

Happy Thanksgiving and little holiday challenge for you.
Say you have a trigger on the slave which you would like to work differently, depending on whenever update is executed via replication thread vs updating table locally ? This can be helpful for example for auditing updates which were done directly instead of coming from the master and some other cases.
Suggest how you would do it by commenting :)

Using Multiple Key Caches for MyISAM Scalability

MySQL Performance Blog - Wed, 26/11/2008 - 8:19am

I have written before - MyISAM Does Not Scale, or it does quite well - two main things stopping you is table locks and global mutex on the KeyCache.

How Percona does a MySQL Performance Audit

MySQL Performance Blog - Tue, 25/11/2008 - 4:42am

Our customers or prospective customers often ask us how we do a performance audit (it's our most popular service). I thought I should write a blog post that will both answer their question, so I can just reply "read all about it at this URL" and share our methodology with readers a little bit. This fits well with our philosophy of openness. It also shocks people sometimes -- "you're giving away the golden goose!" Not really. What you hire us for is our experience, not a recipe that anyone can follow.

Using INFORMATION_SCHEMA instead of shell scripting

MySQL Performance Blog - Tue, 25/11/2008 - 4:16am

INFORMATION_SCHEMA, in particular by favorite TABLES table is not only helpful to understand tables you have on the system, but I have also found it to be very helpful as a scripting language for variety of database administration tasks. It can be more straightforward compared to using shell or Perl when the operation is database specific.

For example if you would like to MySQLDump only Innodb table in one file per database you can do the following:

How to calculate a good InnoDB log file size

MySQL Performance Blog - Fri, 21/11/2008 - 2:52pm

Peter write a post a while ago about choosing a good InnoDB log file size.  Not to pick on Peter, but the post actually kind of talks about a lot of things and then doesn't tell you how to choose a good log file size!  So I thought I'd clarify it a little.

The patches are going to Launchpad

MySQL Performance Blog - Wed, 19/11/2008 - 6:42pm

After some discussions on the OpenSQLCamp 2008 conference we decided to move our development to Launchpad, to be in stream with other MySQL related projects.

We published our patches there, it is supposed to be main repository for the patches.

We advise to use Launchpad bug system to report bugs and also for feature requests.

Adaptive checkpointing

MySQL Performance Blog - Thu, 13/11/2008 - 1:50pm

Do you know that there are two limits about dirty (modified but not flushed to disk) blocks of InnoDB buffer pool? One is the limit of “amount”. The other is the limit of “age”.

– limit of “amount” –

New SpecJAppServer results at MySQL and Sun.

MySQL Performance Blog - Thu, 13/11/2008 - 5:04am

As you likely have seen Sun has posted the new SpecJAppServer Results More information from Tom Daly can be found here These results are quite interesting for me as I worked on some of the previous SpecJAppServer Benchmarks several years ago while being employed by MySQL.

Scaling to 256-way the Sun way

MySQL Performance Blog - Wed, 12/11/2008 - 4:55am

As you may have recently seen there are some articles about scaling MySQL one 256-way system.

I though wow did they really make it work, considering how many bottlenecks remain in MySQL.

What article really tells us ?

More patches

MySQL Performance Blog - Wed, 12/11/2008 - 4:07am

After some pause we are going to announce bunch of patches we made and ported for last period.

Ported patches (ported from Google V2 patch):

Thoughs on Innodb Incremental Backups

MySQL Performance Blog - Mon, 10/11/2008 - 7:22pm

For normal Innodb “hot” backups we use LVM or other snapshot based technologies with pretty good success. However having incremental backups remain the problem.

First why do you need incremental backups at all ? Why not just take the full backups daily. The answer is space - if you want to keep several generations to be able to restore to, having huge amount of full copies of large database is not efficient. Especially if it only changes couple of percents per day.

Drilling down to the source of the problem

MySQL Performance Blog - Sun, 09/11/2008 - 3:12am

I had an interesting tuning case few days ago. The system serving high traffic using Innodb tables would be stalling every so often causing even very simple queries both reads and writes taking long time to complete, with progress almost paused (dropping from thousands to tens of queries per second).

New Presentations published (Meetup and Highload)

MySQL Performance Blog - Fri, 07/11/2008 - 7:27pm

We have finally found the time to update out presentation pages - we’ve added the presentation on MySQL Scaling by Sharding and Replication as well as Russian Language presentations I’ve given at HighLoad++ conference back in October.

Poor man’s query logging

MySQL Performance Blog - Fri, 07/11/2008 - 2:20pm

Occasionally there is a need to see what queries reach MySQL. The database provides several ways to share that information with you. One is called general log activated with --log (or --general-log in MySQL 5.1+) start-up parameter. The log writes any query being executed by MySQL to a file with limited amount of additional information. The other is slow log enabled by --log-slow-queries parameter (MySQL 5.1 requires also --slow-query-log), which was designed to store poorly performing queries that run at least 2 seconds.

Living with backups

MySQL Performance Blog - Fri, 07/11/2008 - 12:47am

Everyone does backups. Usually it’s some nightly batch job that just dumps all MySQL tables into a text file or ordinarily copies the binary files from the data directory to a safe location. Obviously both ways involve much more complex operations than it would seem by my last sentence, but it is not important right now. Either way the data is out and ready to save someone’s life (or job at least). Unfortunately taking backup does not come free of any cost.

Election night

MySQL Performance Blog - Thu, 06/11/2008 - 3:19am

Today was epoch day in American history. Maybe even most important day this year, but it’s not what I’d like to write about here. What does it mean for US citizens and all other people around the world? We know, but what does it mean for us - IT professionals and/or internet portals serving news for end users?

Increased number of requests to webservers, high network utilization, and huge number of queries against your databases (while on duty last night, I saw customer servers handling 10 times larger traffic than usual)..


Subscribe to MySQL Performance Blog