Buy Percona ServicesBuy Now!

MySQL wins C’T Database Contest

 | August 29, 2006 |  Posted In: Benchmarks, Events and Announcements

Today MySQL published the press release with results of Database Contest (results on German available here Peter and me spent quite some time working on this project while being employed by MySQL and it is great to see results finally publicly available. The story began about year ago when C’T magazine had called for […]

Read More

SysBench – benchmark tool

 | August 18, 2006 |  Posted In: Benchmarks

Sysbench is benchmark developed by Alexey Kopytov (software engineer @ MySQL AB) – and I want to write a short intro about this tool as sysbench is one of software for my everyday use. For example, SUN published their Solaris vs RedHat stuff based on sysbench’s results (Peter and me provided performance consutling for […]

Read More

Returning to InnoDB scalability

 | July 28, 2006 |  Posted In: Insight for DBAs

I’m again returning to InnoDB scalability and related bug #15815 as it hurts many users and customers using multi-cpu servers. Short intro into problem: On 4-CPU box 1 thread executes full-table scan select query for 8 sec, but with 4 threads – each thread executes query for 240 sec. It is very strange as threads […]

Read More

Stack trace for x86_64 boxes

 | July 19, 2006 |  Posted In: Insight for DBAs

We are going to release several patches which are not included in official MySQL releases. First one is automatically stack trace for x86_64 systems. Currently MySQL resolves stack in crash only for x86 boxes. You can download patch for 5.0.22 source tree here. How to use: place stack64.diff into main source dir; execute patch -p1 […]

Read More

Handling big result sets

 | June 26, 2006 |  Posted In: Insight for Developers

Sometime it is needed to handle a lot of rows on client side. Usual way is send query via mysql_query and than handle the result in loop mysql_fetch_array (here I use PHP functions but they are common or similar for all APIs, including C). Consider table:

Read More

FreeBSD tests

 | June 15, 2006 |  Posted In: Benchmarks

I’m continuing my experiments with different OS and today I tested FreeBSD 6.0 on my box. (more details about box and benchmark see here Initially I was very pessimistic about FreeBSD, as results were (in transactions/sec, more is better. for comparison the results from Suse 10.0): InnoDB threads FreeBSD 6 Suse 10.0 Suse/ FreeBSD […]

Read More

MyISAM concurrent insert

 | June 13, 2006 |  Posted In: Benchmarks, Insight for DBAs

Arjen posted a good note about MyISAM concurrent-insert features, though I should mention concurrent-insert can be cause of scalablity and peformance problems on SMP boxes, especially on queries processing range-queries. The reason of problems is POSIX read-write locks, which are used to protect key_buffer from concurrent changes and called for each processed row. More info […]

Read More

Quick look at Ubuntu 6.06

 | June 13, 2006 |  Posted In: Benchmarks

There are a lot of talks around new coming Ubuntu 6.06, so I decided to make quick benchmarks. I used sysbench 0.4.6 oltp-read-only workload with 1000000 rows against InnoDB and MyISAM tables. Such workload is CPU-bound and allows to compare CPU / OS if we are using the same version of MySQL. So I used […]

Read More

InnoDB thread concurrency

 | June 5, 2006 |  Posted In: Insight for DBAs

InnoDB has a mechanism to regulate count of threads working inside InnoDB. innodb_thread_concurrency is variable which set this count, and there are two friendly variables innodb_thread_sleep_delay and innodb_concurrency_tickets. I’ll try to explain how it works. MySQL has pluginable architecture which divides work between mysql common code (parser, optimizer) and storage engine. From storage engine’s point […]

Read More

InnoDB page size

 | June 4, 2006 |  Posted In: Insight for DBAs

As maybe you know InnoDB uses hard page size 16Kb for datafiles and for buffer pool. However this size can be changed if you need it for your workload. go to file innobase/include/univ.i, lines:

UNIV_PAGE_SIZE is page size (as you see – default value 16Kb). Possible values for UNIV_PAGE_SIZE is 8K, 16K, 32K, 64K. […]

Read More