On MySQL Ecosystem. Q&A with Vinicius Grippa
Q1. You have 18 years of experience in mission-critical database design. What are the main lessons you have learned in all these years?
Test, test, and test one more time! When I started at Percona, I had the opportunity to learn from some great engineers, and that was the first big lesson. First, because documentation can sometimes be wrong or misleading. Second, because hands-on work is a great way to learn in detail how a feature works. That’s how I learned how Galera Cluster works, how a deadlock happens, and how a gap lock behaves in InnoDB. All of this—and much more—came from observing the database in action.
Q2. You are a MySQL Rockstar. Congratulations! What do you think are your main contributions to the MySQL community?
Thanks! Over the years, I’ve reported a few bugs that helped make MySQL a bit more reliable. But I think my main contributions to the community have been promoting MySQL through blog posts, attending conferences, and organizing local meetups in Brazil. Most of all, co-writing Learning MySQL 2nd Edition with my colleague Sergey. When we wrote the book, I wanted it to help people who were just starting out with MySQL. When I began, the information was scattered and it was hard to know where to begin. The book is, in my opinion, the realization of that goal.
Q3. You contributed to the MySQL ecosystem by reporting several bugs over the years. What did you learn in this task?
As I mentioned earlier, the main lesson was: test and see it with your own eyes. But beyond that, reporting bugs teaches you discipline and methodology. You need to organize your thoughts clearly. And it really deepens your knowledge of the database internals. To report a bug, you first need to understand how something should work—only then can you say that the actual behavior is wrong.
Q4. In your work with MySQL you have been working on issues such as upgrading, query optimization, performance. Can you please elaborate on them? What were the challenges you address and what was your contribution?
Databases have several areas you can specialize in—like medicine, where you focus on one or more specialties. Upgrading, for example, requires knowing your application’s limitations and what changes an upgrade will introduce. For example, in MySQL 8, you can’t downgrade in place—you need to export and reimport your data. So upgrading is a decision that needs careful planning.
Query optimization is probably the most well-known area—everyone tries adding indexes to fix slow queries. That works sometimes, but other times you need to understand how JOINs work, implicit conversions, statistics, and MySQL optimizer features.
The area I enjoy most is performance. It involves understanding the OS, tuning system parameters, and knowing what’s happening under the hood in MySQL. MySQL has over 500 parameters! Add OS-level metrics and you get a long list of things to check and fine-tune. But when done right, it can save you a lot of cost and effort.
Q5. You have been writing about MySQL’s file storage behavior during DDL operations, particularly with InnoDB tables. What is this? and why is it relevant?
DDLs are the foundation for creating tables, indexes, and relationships like foreign keys. They also allow you to create views, roles, functions, and users. At the beginning, it’s simple. But using DDLs in a live, connected application can be tricky. If not well planned, DDLs can stall the database by creating locks and contention. That’s why understanding their behavior—especially with InnoDB—is so important.
Q6. When optimizing a database query or fine-tuning a high-performance application, understanding how quickly different components of your system respond can make or break performance. What are your suggestions here?
That’s spot on. The good news is there’s a lot of quality content out there—blogs from Percona, MariaDB, ProxySQL, Oracle, and many community contributors. You can even find helpful blog posts covering older MySQL versions like 5.6 and 5.7.
From a technical standpoint, having data is key and there are open source tools like Percona Toolkit that will assist you in collecting it. Also, understanding what changed is very important—it’s not always the database’s fault. Maybe new application code was deployed, or your marketplace is running a campaign and workload spiked. Having a 360-degree view of the situation is crucial. Sometimes high CPU usage isn’t the root cause, it’s just a symptom of something else.
Q7. Random insertions or deletions in a secondary index can lead to fragmentation. Why is this a problem? And what is the solution?
Imagine you have a notebook with blank pages. You start writing on it, and sometimes you erase parts, but you don’t want to rewrite everything to fill those gaps—it’s too much work. You might add a few words in the empty spaces, but they don’t always fit. Over time, your notebook is full of holes. Reading it now means flipping through way more pages than before. That’s fragmentation—more time and effort to do the same task.
The solution is to rewrite everything and clean up the gaps—just like reorganizing your notebook. But this takes time and system resources. Tools like pt-online-schema-change, gh-ost, and online DDLs can help, but you definitely don’t want to do this in the middle of peak application usage. Timing is everything.
Q8. Please explain why sorting MySQL table by size is important?
Knowing your largest tables helps you make better decisions. Even if resources are cheaper nowadays, storage and performance still cost money. If a table is huge, maybe you should consider partitioning it or defragmenting it. Or maybe you’ll realize that some of the data is no longer needed and can be purged. It’s all about visibility and smart housekeeping.
Q9. You are leading the MySQL User Group in Brazil. How is the database market in Brasil?
Brazil has a big IT market, especially around São Paulo, Rio de Janeiro, and the South. Big players like Amazon, Google, Microsoft, and Oracle have a presence here. The database market is smaller though—you tend to know most of the DBAs. In the MySQL group, we have a WhatsApp group with over 300 members. It’s very active, and people are always helping each other. Events like PGConf and the MySQL Brazil Meetup are key places for networking and learning about new tech.
Qx. Anything else you wish to add?
Recently, I became an Oracle ACE Director, which made me really happy! I hope this helps me bring even more content related to MySQL, Oracle Linux, and cloud technologies. We’re also planning this year’s MySQL Meetup, where we’ll celebrate 30 years of MySQL! So stay tuned on social media—we’ll be sharing more about the celebration event in Brazil soon. Lastly, thanks a lot for the invite and for the opportunity to do this interview!
……………………………………………………….

Vinicius Grippa is a Lead Database Engineer at Percona, Oracle ACE Director, and co-author of Learning MySQL. With 18 years of experience, he specializes in MySQL and MongoDB for mission-critical systems. He leads Brazil’s MySQL User Group and regularly speaks at global tech events like FOSDEM and Percona Live.
Sponsored by MySQL/Oracle.