Percona Resources

Software
Downloads

All of Percona’s open source software products, in one place, to download as much or as little as you need.

Valkey Contribution

Product Documentation

Why Percona for MongoDB?

Why Percona for PostgreSQL?

Percona Blog

Percona Blog

Our popular knowledge center for all Percona products and all related topics.

Community

Percona Community Hub

A place to stay in touch with the open-source community

Events

Percona Events Hub

See all of Percona’s upcoming events and view materials like webinars and forums from past events

About

About Percona

Percona is an open source database software, support, and services company that helps make databases and applications run better.

Percona in the News

See Percona’s recent news coverage, press releases and industry recognition for our open source software and support.

Our Customers

Our Partners

Careers

Contact Us

Peter Zaitsev
Peter managed the High Performance Group within MySQL until 2006, when he founded Percona. Peter has a Master's Degree in Computer Science and is an expert in database kernels, computer hardware, and application scaling.

Beware of MyISAM Key Cache mutex contention

Today I was working with the client loading data to MyISAM tables at very high rate. Hundreds of millions rows are loaded daily into single MySQL instance with bursts up to 100K of records/sec which need to be inserted (in the table with few indexes). It was good not all records had to go to […]

Picking datatype for STATUS fields

Quite commonly in applications, you would need to use some kind of “status” field – the status of an order – “new”, “confirmed”, “in production”, “shipped” status of a job, message, etc. People use variety of ways to handle them often without giving enough thought to the choice which can cause problems later. Perhaps worst, […]

New MySQL Community release – Great job MySQL !

Wow!. New MySQL Community release – MySQL 5.0.67 is just out which as manual says first community release since 5.0.51b. I just recently complained about community release irregularity and I’m glad to see the new release after all. I only hope this will not be one time event but MySQL will follow its own promises […]

Predicting Performance improvements from memory increase

One common question I guess is how much should I see performance improved in case I increase memory say from 16GB to 32GB. The benefit indeed can be very application dependent – if you have working set of say 30GB with uniform data access raising memory from 16GB to 32GB can improve performance order of […]

Will Percona Support Drizzle ?

People are asking me if Percona will support Drizzle and what is in general our position regarding this project. First about Support. We surely will support the customers if they select to run the Drizzle instead of MySQL Server. For us it is same as supporting MySQL Server with custom patches, which we do. In […]

128GB or RAM finally got cheap

I did not usually go to “Elite” servers on Dell web site but looking at customers system today I went to check Dell Poweredge R900. This monster takes up to 4 Quad Core CPUs and has 32 memory slots, which allows to get 128GB of memory with 4GB of memory chips. This means upgrade to […]

Recovery beyond data restore

Quite frequently I see customers looking at MySQL recovery as on ability to restore data from backup which can be far from being enough to restore the whole system to operating state, especially for complex systems. Instead of looking just at data restore process you better look at the whole process which is required to […]

Troubleshooting Relay Log Corruption in MySQL

Have you ever seen the replication stopped with message like this: Last_Error: Could not parse relay log event entry. The possible reasons are: the master’s binary log is corrupted (you can check this by running ‘mysqlbinlog’ on the binary log), the slave’s relay log is corrupted (you can check this by running ‘mysqlbinlog’ on the […]

How adding another table to JOIN can improve performance ?

JOINs are expensive and it most typical the fewer tables (for the same database) you join the better performance you will get. As for any rules there are however exceptions 🙂 The one I’m speaking about comes from the issue with MySQL optimizer stopping using further index key parts as soon as there is a […]

Percona turns two today !

July 31st 2006 was my last day working for MySQL and August 1st I started what later was incorporated Percona with Vadim joining me September 1st as co-founder. Two years is a significant anniversary for any startup – surviving (and being profitable) for 2 years can be seen as validation of our business model and […]

Report from OSCON 2008

So I’m back from OSCON 2008. As usually it is fun conference to attend. Though I could only come for couple of days (Wed/Thu) as things are too busy here. Same as previous year I would note the conference is not as much backend and high performance focused as MySQL Conference or even Velocity, though […]

Sphinx 0.9.8 is released just in time for OSCON 2008

As you probably already seen in a post by Baron, Sphinx Release 0.9.8 is finally out, just in time for OSCON 2008. Even though it is “minor release” if you look at the number, it is major release in practice (and you can view snapshots as minor releases). The changes since 0.9.7 are dramatic with […]

Missing Data – rows used to generate result set

As Baron writes it is not the number of rows returned by the query but number of rows accessed by the query will most likely be defining query performance. Of course not all row accessed are created equal (such as full table scan row accesses may be much faster than random index lookups row accesses […]

MySQL 5.1 is to reach GA state – all to arms !

MySQL 5.1 was in RC stage for around 10 months now finally planned to be released as GA soon. As Monty Says MySQL 5.1.26 will be renamed as GA if no serious bugs are discovered. Lets help MySQL to ensure GA release will be indeed GA quality and support Monty in his call to ensure […]

LVM Configuration mistake to Avoid

One of our customers was setting up box for MySQL LVM backups. The box had 2 RAID volumes (internal drives and enclosure) with database being stored on enclosure drives and internal drives used pretty much for OS and logs (database grew too large and so was moved to enclosure completely). As database was large and […]

Logging your MySQL command line client sessions

Baron recently wrote about very helpful but often forgotten about “Pager” feature of command line client. There is another one which falls into the same list – the –tee option. Specifying –tee=/path/to/file.log you can get all session content (everything typed in and printed out) stored in the log file. Quite handy for example to keep […]

How SHOW SLAVE STATUS relates to CHANGE MASTER TO

As you probably know MySQL Replication (statement based) works by fetching statements from MASTERs binary log and executing them on the SLAVE. Since MySQL 4.0 this process is a bit more involved having events passing via relay logs on the Slave which also means there are two replication threads “IO Thread” and “SQL Thread” used […]

Speaking on OSCON 2008

It looks like I never blogged about it but I’m going to be speaking on OSCON 2008. Similar to the last year presentation I’ll do overview of MySQL Open Source storage engines. I’ll do brief overview of different storage engines available out there as well as share benchmark results for some of them.