Upgrading MySQL is often seen as straightforward — install the new binaries, restart, done. In reality, it’s more like upgrading a production jet engine mid-flight. Small changes in defaults, deprecated settings, or old privileges can lead to surprises you don’t want at 2:00 AM on maintenance night. Or even worse, see your performance deteriorating during…
My Impressions from Oracle AI World 2025 – MySQL, AI, and Its Open Source Future
Note: The opinions below represent my personal perspective only. They don’t include any confidential information or represent the views of Oracle or my current employer, Percona. The question I brought home after this conference is: Was this an AI conference because everyone is already using AI, or because they want you to use AI?…
Benchmarking MySQL Server With mysqlslap: Estimating Capacity, Not Absolute Limits
When I’m working with MySQL, I care not just about whether a single query is slow, but how much total load the server can handle before performance starts to drop. Tools like mysqlslap help by generating synthetic workloads to simulate multiple clients and measure the server’s Queries Per Second (QPS). In this post, I’ll walk through…
MySQL Brazil Meetup 2025 – Aniversário de 30 Anos!
Parece mentira, mas o MySQL está completando 30 anos em 2025. Três décadas de código aberto, performance, confiabilidade (sim, a gente sabe dos bugs também 😅) e uma comunidade incrível que cresce a cada ano. E, claro, isso merece ser comemorado! 📍 Onde e quando? Vamos nos reunir em São Paulo, no dia 4 de…
Black Friday or Dark Friday? Depends If MySQL Stands the Rush
Black Friday or Dark Friday? Tips to Ensure Your MySQL Instance Survives Black Friday is one of the most demanding days of the year for e-commerce and online services, and your database is at the heart of it all. A slow or offline MySQL instance can turn your Black Friday into a Dark Friday, costing…
How to Identify Processes Using Swap Memory on Linux
Identifying which processes have pages swapped out of memory when troubleshooting performance issues on a Linux system is often helpful. Swapping can impact system performance, so knowing which processes are affected is important in diagnosing and resolving these issues. Checking Swap Usage by Process Linux provides detailed process information in the /proc directory. By leveraging…
Testing Dolphie For the First Time: Features and Feedback
In this blog post, I will test Dolphie, an open-source project by Charles Thompson. Dolphie is an open-source tool that provides real-time analytics for MySQL, MariaDB, and ProxySQL. As a first-time user, my goal is to go from zero to hero, exploring how easy it is to start using the tool while getting familiar with…
Understanding MySQL DDL Space Requirements
This blog post will explore MySQL’s file storage behavior during DDL operations, particularly with InnoDB tables. Using a practical example, we’ll discuss where and how MySQL stores data during different types of DDL operations. Setting the Stage: Table Structure Consider a table sbtest1 with 30 million rows, created as follows:
|
1 2 3 4 5 6 7 8 |
CREATE TABLE `sbtest1` ( `id` int NOT NULL AUTO_INCREMENT, `k` int NOT NULL DEFAULT '0', `c` char(120) NOT NULL DEFAULT '', `pad` char(60) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `k_1` (`k`) ) ENGINE=InnoDB AUTO_INCREMENT=30000001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; |
This table is actively used…
Understanding Latency Through a 100m Race: From CPU to NVMe
In the world of computing, latency is everything. Whether you’re 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. But let’s put these abstract nanoseconds and microseconds into a more relatable scenario—a 100m sprint race. 🏃♂️🏃♀️ The Runners in the Race…
How to Add an Invisible Primary Key to an Existing Table in MySQL
With MySQL 8.0.23, the concept of invisible columns was introduced. Columns marked as invisible do not appear in standard SELECT * queries and don’t require changes to existing application code. Later, in MySQL 8.0.30, support for automatically generated invisible primary keys (GIPKs) was added for InnoDB tables created without an explicit primary key. This enhancement, controlled by…





