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

Tibor Korocz
Tibi joined Percona in 2015 as a Consultant. Before joining Percona, among many other things, he worked at the world’s largest car hire booking service as a Senior Database Engineer. He enjoys trying and working with the latest technologies and applications which can help or work with MySQL together. In his spare time he likes to spend time with his friends, travel around the world and play ultimate frisbee.

How to Speed Up Pattern Matching Queries

From time to time I see pattern matching queries with conditions that look like this: “where fieldname like ‘%something%’ “. MySQL cannot use indexes for these kinds of queries, which means it has to do a table scan every single time. (That’s really only half true — there are the FullText indexes. In another blog […]

Verifying Query Performance Using ProxySQL

In this blog post, we’ll look at how you can verify query performance using ProxySQL. In the previous blog post, I showed you how many information can you get from the “stats.stats_mysql_query_digest” table in ProxySQL. I also mentioned you could even collect and graph these metrics. I will show you this is not just theory, it […]

Catching Slow and Frequent Queries with ProxySQL

In this blog post,  I’ll look at how to catch slow and frequent queries with ProxySQL. More and more people are using ProxySQL because it is a great tool and it can help DBAs a lot. But many people do not realize that it is more powerful than it looks. It has many features and possibilities. […]

SSL Connections in MySQL 5.7

This blog post looks at SSL connections and how they work in MySQL 5.7. Recently I was working on an SSL implementation with MySQL 5.7, and I made some interesting discoveries. I realized I could connect to the MySQL server without specifying the SSL keys on the client side, and the connection is still secured […]

ProxySQL Rules: Applying and Chaining the Rules

In this post, I am going to show you how you can minimize the performance impact of ProxySQL rules by using some finesse. Apply Test In my previous post, we could see the effect of the rules on ProxySQL performance. As we could also see, the “apply” option does not help with 1000 tables. Are we […]

ProxySQL Rules: Do I Have Too Many?

In this blog post we are going to take a closer look at ProxySQL rules. How do they work, and how big is the performance impact of having many rules? I would like to say thank you to Renè, who was willing to answer all my questions during my tests. Overview ProxySQL is heavily based […]

How to Fully Disable Query Cache in MySQL

This blog post was motivated by an internal discussion about how to fully disable query cache in MySQL. According to the manual, we should be able to disable “Query Cache” on the fly by changing query_cache_type to 0, but as we will show this is not fully true. This blog will show you how to properly disable “query […]

Orchestrator and ProxySQL

In this blog post, I am going to show you how can you use Orchestrator and ProxySQL together. In my previous blog post, I showed how to use bash scripts and move virtual IPs with Orchestrator. As in that post, I assume you already have Orchestrator working. If not, you can find the installation steps here. In the case of […]

Orchestrator: Moving VIPs During Failover

In this post, I’ll discuss how to moving VIPs during a failover using Orchestrator. In our previous post, we showed you how Orchestrator works. In this post, I am going to give you a proof-of-concept on how Orchestrator can move VIPs in case of failover. For this post, I’m assuming the Orchestrator is already installed and […]

Thoughts on MySQL 8.0 Invisible Indexes

MySQL 8.0 has a new feature called “invisible indexes,” which allow you to quickly enable/disable indexes from being used by the MySQL Optimizer. I wanted to share some of my first experiences and thoughts about this new feature. Why is it good for us? There are a couple of use cases. One of them is if you want to […]

Upgrading to MySQL 5.7, focusing on temporal types

In this post, we’ll discuss how MySQL 5.7 handles the old temporal types during an upgrade. MySQL changed the temporal types in MySQL 5.6.4, and it introduced a new feature: microseconds resolution in the TIME, TIMESTAMP and DATETIME types. Now these parameters can be set down to microsecond granularity. Obviously, this means format changes, but why […]

Orchestrator-agent: How to recover a MySQL database

In our previous post, we showed how Orchestrator can handle complex replication topologies. Today we will discuss how the Orchestrator-agent complements Orchestrator by monitoring our servers, and provides us a snapshot and recovery abilities if there are problems. Please be aware that the following scripts and settings in this post are not production ready (missing error handling, etc.) […]

Orchestrator: MySQL Replication Topology Manager

This blog post discusses Orchestrator: MySQL Replication Topology Manager. What is Orchestrator? Orchestrator is a replication topology manager for MySQL. It has many great features: The topology and status of the replication tree is automatically detected and monitored Either a GUI, CLI or API can be used to check the status and perform operations Supports automatic […]