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

Jervin Real
As Senior Consultant, Jervin partners with Percona's customers on building reliable and highly performant MySQL infrastructures while also doing other fun stuff like watching cat videos on the internet. Jervin joined Percona in Apr 2010.

ZFS For MongoDB Backups

We have successfully used ZFS for MySQL® backups and MongoDB® is no different. Normally, backups will be taken from a hidden secondary, either with mongodump , WT hot backup or filesystem snapshots. In the case of the latter, instead of LVM2, we will use ZFS and discuss potential other benefits. Preparation for initial snapshot Before taking […]

Load Balanced ProxySQL in Google Cloud

There are three different ways ProxySQL can direct traffic between your application and the backend MySQL services. Locally, on the MySQL servers. Between the MySQL servers and the application. Colocated on the application servers themselves. Without going through too much detail – each has its own limitations. In the first form, the application needs to […]

Simple STONITH with ProxySQL and Orchestrator

Distributed systems are hard – I just want to echo that. In MySQL, we have quite a number of options to run highly available systems. However, real fault tolerant systems are difficult to achieve. Take for example a common use case of multi-DC replication where Orchestrator is responsible for managing the topology, while ProxySQL takes […]

Setup Compatible OpenLDAP Server for MongoDB and MySQL

By the end of this article, you should be able to have a Percona Server for MongoDB and Percona Server for MySQL instance able to authenticate on an OpenLDAP backend. While this is mostly aimed at testing scenarios, it can be easily extended for production by following the OpenLDAP production best practices i.e. attending to […]

Identifying Unused Indexes in MongoDB

Like MySQL, having too many indexes on a MongoDB collection not only affects overall write performance, but disk and memory resources as well. While MongoDB holds predictably well in scaling both reads and writes options, maintaining a heathly schema design should always remain a core character of a good application stack. Aside from knowing when […]

Migrating to Amazon Aurora: Design for Flexibility

In this Checklist for Success series, we will discuss reducing unknowns when hosting in the cloud using and migrating to Amazon Aurora. These tips might also apply to other database as a service (DBaaS) offerings. Previous blogs in the migrating to Amazon Aurora series: Migrating to Amazon Aurora: Reduce the Unknowns Migrating to Amazon Aurora: […]

Migrating to Amazon Aurora: Optimize for Binary Log Replication

In this Checklist for Success series, we will discuss reducing unknowns when hosting in the cloud using and migrating to Amazon Aurora. These tips might also apply to other database as a service (DBaaS) offerings. In our previous article, we discussed the importance of continuous query performance analysis, especially in Amazon Aurora where there is […]

Using gh-ost with Amazon Aurora for MySQL

In this day and age of agile methodologies and fast-paced development methods, database schema changes are as inevitable as the growth of data. We have been thoroughly familiar with the effectivity of pt-online-schema-change for the last couple of years but it has one limitation. If the table is too hot to acquire metadata locks to […]

Why ZFS Affects MySQL Performance

In this blog post, we’ll look at how ZFS affects MySQL performance when used in conjunction. ZFS and MySQL have a lot in common since they are both transactional software. Both have properties that, by default, favors consistency over performance. By doubling the complexity layers for getting committed data from the application to a persistent […]

Updating/Deleting Rows From Clickhouse (Part 2)

In this post, we’ll look at updating and deleting rows with ClickHouse. It’s the second of two parts. In the first part of this post, we described the high-level overview of implementing incremental refresh on a ClickHouse table as an alternative support for UPDATE/DELETE. In this part, we will show you the actual steps and […]

Updating/Deleting Rows with ClickHouse (Part 1)

In this post, we’ll look at updating and deleting rows with ClickHouse. It’s the first of two parts. You can see Part 2 of this post here. ClickHouse is fast Blazing fast! It’s quite easy to pick up, and with ProxySQL integrating with existing applications already using MySQL, it’s way less complex than using other analytics […]

Avoid Shared Locks from Subqueries When Possible

In this blog post, we’ll look at how to avoid shared locks from subqueries. I’m pretty sure most of you have seen an UPDATE statement matching rows returned from a SELECT query:

This query, when executed with autocommit=1, is normally harmless. However, this can have bad effects when combined with other statements in the […]

ProxySQL Improves MySQL SSL Connections

In this blog post, we’ll look at how ProxySQL improves MySQL SSL connection performance. When deploying MySQL with SSL, the main concern is that the initial handshake causes significant overhead if you are not using connection pools (i.e., mysqlnd-mux with PHP, mysql.connector.pooling in Python, etc.). Closing and making new connections over and over can greatly impact […]

Learning MySQL 5.7: Q & A

In this post I’ll answer questions I received in my Wednesday, July 19, 2017, webinar Learning MySQL 5.7! First, thank you all who attended the webinar. The link to the slides and the webinar recording can be found here. I received a number of interesting questions in the webinar that I’ve followed up with below. […]

A Little Trick Upgrading to MySQL 5.7

In this blog post, I’ll look at a trick we use at Percona when upgrading to MySQL 5.7. I covered this subject (and others) in my webinar Learning MySQL 5.7 on Wednesday, July 19, 2017. On Upgrading to MySQL 5.7 We’ve been doing upgrades for quite a while here are Percona, and we try to optimize, standardize […]

Performance Schema: Measure Multi-Threaded Slave Activity

Performance Schema In many types of database workloads, using a multi-threaded slave from 5.6+ helps improve replication performance. I’ve had a number of users enable this feature, but have not seen anyone ask how each thread is performing. Here’s a quick way with Performance_Schema to measure the amount of multi-threaded slave activity on each thread (after you […]

How Big Can Your Galera Transactions Be

While we should be aiming for small and fast transactions with Galera, it is always possible at some point you might want a single large transaction, but what is involved? First, this is supposed to be controlled by two settings, wsrep_max_ws_rows  and wsrep_max_ws_size . The first variable is not yet enforced and has no effect – see […]