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.

Multi Column indexes vs Index Merge

The mistake I commonly see among MySQL users is how indexes are created. Quite commonly people just index individual columns as they are referenced in where clause thinking this is the optimal indexing strategy. For example if I would have something like AGE=18 AND STATE=’CA’ they would create 2 separate indexes on AGE and STATE […]

Queries Active vs Transactions Active

What is wrong here (the part of SHOW INNODB STATUS): ————– ROW OPERATIONS ————– 8 queries inside InnoDB, 9 queries in queue 100 read views open inside InnoDB It is relationship between queries active – queries inside innodb+queries in the queue totalling 17 with “read views open inside InnoDB” which is a fancy way of […]

3 ways MySQL uses indexes

I often see people confuse different ways MySQL can use indexing, getting wrong ideas on what query performance they should expect. There are 3 main ways how MySQL can use the indexes for query execution, which are not mutually exclusive, in fact some queries will use indexes for all 3 purposes listed here.

Innodb performance gotcha w Larger queries.

Couple of days ago I was looking for a way to improve update performance for the application and I was replacing single value UPDATE with multiple value REPLACE (though I also saw the same problem with INSERT ON DUPLICATE KEY UPDATE) As I went from 1 value to 3 or 10 in the batch performance […]

Looking at Redis

Recently I had a chance to take a look at Redis project, which is semi-persistent in memory database with idea somethat similar to memcache but richer feature set. Redis has simple single process event driven design, which means it does not have to deal with any locks which is performance killer for a lot of […]

Innodb plugin 1.0.4 released – great job Innobase

As you might have seen Innodb Plugin 1.0.4 was released today. I am very excited to see this release which is released exactly 5 months after release of Innodb Plugin 1.0.3 (I honestly expected to see Innodb Plugin 1.0.4 to be released by MySQL Conference and Expo in April). This also is still “early adopter” […]

Sphinx at MySQL Meetup at San Francisco

I will be presenting at upcoming MySQL Meetup at San Francisco this Thursday, August 13. I will talk about Sphinx covering the new cool features this search engine has as well as showing the demo on how simple it is to use Sphinx to implement high performance full text search for your MySQL driven application. […]

Crashes while using MyISAM with multiple key caches

Over last couple of years I have ran into random MySQL crashes in production when multiple key caches were used. Unfortunately this never was frequent or critical enough issue so I could spend time creating repeatable test case and search of the bug in the MySQL database did not find anything. Recently we had this […]

Percona BOFs at OSCON

Talks are great. I however very much like discussion and opinion share atmosphere of the Birds of a Feather sessions so we host/co-host number of BOFs at the comming OSCON conference. Future of MySQL Forks, Branches and Patches I guess is the topic a lot of us are interested in. Monty was going to Show […]

Percona talks at OSCON

The OSCON 2009 is taking place next week and we have bunch of talks we’re presenting. I am presenting Full Text Search with Sphinx, MySQL Community Patches and Extensions and Goal Driven Performance Optimization. Vadim and Ryan have a talk XTraDB OpenSource Storage Engine for MySQL. This month OSCON is taking place in Silicon Valley […]

Just do the math!

One of the most typical reasons for performance and scalability problems I encounter is simply failing to do the math. And these are typically bad one because it often leads to implementing architectures which are not up for job they are intended to solve. Let me start with example to make it clear. Lets say […]

MySQL Scalability for Facebook Application Developers

As the part of FbFund educational seminars I will give a talk on MySQL Scalability for Facebook Application Developers. We have been working with number of top FaceBook applications and these are really fun to work with due to their commonly agile development approaches and explosive growth if it happens to be the hit. The […]

Onsite and Remote – getting best of both worlds

At Percona we provide services both Onsite – visiting the customers and Remote – logging in to their systems or communicating via email,phone,instant messaging. We believe both approaches have their benefits and drawbacks and mixing them right way allows you to get your problems solved most efficient way.

Hosting the BOF at Velocity Conference

I have not got a chance to have a standard session on Velocity Conference this year, However I’m hosting the BOF. Bring your flash, IO Performance, and general performance stories and questions if you have any. I also plan to attend the conference afternoon on Monday and mid day on Tuesday.

Scaling IO Bound Workloads Webinar

I will co-present in webinar on Performance Challenges and Solutions for IO Bound Workloads in MySQL. My part of the presentation will be speaking about why switching from CPU bound workload to IO bound is such an important event, how to prepare to it as well as how to keep your application performance good as […]

Using netcat to copy MySQL Database

This is mainly a cheat sheet for me to remember. Nothing rocket science. It often makes sense to use netcat/nc to copy MySQL database between hosts in trusted networks. It bypasses encryption overhead of SSH and depending on configuration can be significantly faster. Also note MySQL should be down when you copy data unless you’re […]

Open Development vs Making a Big Splash

I find it very interesting how Sun does not get the very basic principle of true community Open Source development – you’ve got to give up on making a big splash. Traditional close source company often develop product in the secret and when it comes out as a surprise for computers and making a big […]

Terminate MySQL Connections

Every so often I run into a situation when I need to terminate connections on MySQL server – for example, hundreds of instances of some bad query is running, making the server unusable. Many people have special scripts which can take the user, source host, or query as a parameter and perform the action. There […]