Vlad Fedorkov

Performance consulting for MySQL and Sphinx

One, two, three, MySQLers… OOW 2019, Percona Live, ProxySQL Tech Day!

As people are getting back from vacations and application traffic is going back and hitting database backend hard, it is a good time to think about performance and prepare for the winter holiday spike. Whenever you are on-premise or in the cloud, questions are the same:

  • Are we satisfied with the current MySQL performance?
  • How much traffic are we currently serving?
  • Is there enough capacity to stay stable as traffic increases?
  • What would be the best way to stay cost-effective as we grow?

Unfortunately, the answers are not so obvious and require a thorough performance analysis. However, there is a chance that your problem has already been solved by someone else. I do not mean StackOverflow (which is a beautiful place, by the way), but some higher level questions which people usually discuss at conferences, and we have several of them ongoing or just a couple of weeks away.

Right this moment René Cannào and Peter Boros are preparing to deliver their talk MySQL with ProxySQL at Zuora at Oracle Open World conference, 09:00 AM @ Room 301, Moscone South.

At the same time next door in the Room 312 Oracle’ Frederic Descamps will be talking about MySQL Shell for DBAs.

If you are a developer, than you probably won’t miss Seventeen Things Developers Need to Know About MySQL by Peter Zaitsev 11:15 AM @ Room 3.

But that’s California, and what if you’re in Europe? Please hold on, we’re crossing the Atlantic!

Let’s move to Amsterdam where you might want to attend Percona Live Europe held from September 30th to October 2nd. As you land, you will not even need a taxi to get there as your venue is next to the airport! Besides useful tutorials on the first day, there will be two complete days filled with Database Wisdom. Perconians and their guests will share virtually every aspect of the database performance and operations.

Here is a list of my favorite talks from day one @ Percona Live:

  • MyRocks and RocksDB Advanced Features and Performance by Yoshinori Matsunobu (2:30 PM),
  • ClickHouse Features to Blow Your Mind by  Aleksei Milovidov (6:00 PM),
  • Tracing and Profiling MySQL by Valerii Kravchuk (same 6:00 PM).

The next day is also full of great talks, here’re just some examples:

  • Sveta Smirnova helps you to save life with Histograms (9:00 AM),
  • Marco Tusa will make a deep dive into Using ProxySQL as Firewall (10:00 AM),
  • Morgan Tocker will share his First 90 days experience with Vitess (11:00 AM).
  • And if you are looking for real hardcore stuff, please visit gdb basics for MySQL DBAs  by Valerii Kravchuk (3:30 PM).

That’s a really intense line-up for three days, but that’s not the end, here comes the ProxySQL Tech Day!

Right after Percona Live, on Thursday Oct 3rd, we are going to meet in person at a free event in Ghent, Belgium. We’ll be talking specifically about large-scale MySQL environments and how to serve a really huge amount of transactions with MySQL. Experts from 5 different companies will gather at Co.Station Gent and share their knowledge. Tricky questions, mind-breaking cases, crazy requirements and challenges of all kinds are super welcome! Please use this form and be sure that we’ll tackle your issue.

We’re starting at 5:00 PM, so you will have some time for a walk across the nice City of Ghent!

P.S. The views expressed here are my own and do not necessarily reflect the opinion of my employer.

Full table scans and MySQL performance

High season is coming, how do you make sure that MySQL will handle the increased load? Stress tests could help with that, but it’s not a good idea to run them in a production environment. In this case Select_scan, Select_full_join and other MySQL counters could quickly give you an idea of how many queries are not performing well and could cause a performance degradation as the load goes up.

Select_scan from SHOW GLOBAL STATUS indicates how many full table scans were done since last MySQL restart. Scanning the entire table is a resource intensive operation. It also forces MySQL to store unnecessary data in the buffer pool, wasting memory and IO resources. Continue reading

Tips and tricks while working with Production DBs

From time to time we have to work with live environments and production databases. For some of us this is day-to-day job. And most of the time cost of a mistake is way higher than expected improvement especially on the databases. Because issue on the database side will affect everything else.

I heard enough war stories about ruined productions and can imagine well enough speed of DROP DATABASE command replicating across the cluster. So I’m scared to make changes in production. The more loss expected if things go wrong the more I’m going to be scared planning every change. But I still love to make improvements so the only question is how to make them safer.

This post is not intended to be a guide or best practices on how to avoid issues at all, it’s more invitation to discussion that started between me and @randomsurfer in twitter on how to avoid production failures. It was hard for me to fit to 150 characters so I’m switching to more comfortable environment. Continue reading

Sphinx events in New York City this fall

For some of you who situated near New York City I am happy to announce that you could attend two events related to leading Full-Text search engines in open source – Sphinx Search.

First meeting organized by NYPHP meetup on Tuesday, September 25th at IBM, 590 Madison Avenue, New York. I’ll be speaking about search services in cloud environment and distributed search tips and tricks. Event is free, please RSVP.

One week later on October 1st, I’ll be doing tutorial about MySQL and Sphinx “Full-text based services with Sphinx and MySQL” at greatest MySQL event in East Cost, Percona Live NY. Use “FlashSale” code to get exceptional 25% discount (valid until Sept 23rd).

Looking forward to meet you in New York City!