This MySQL replication error — fatal error 1236 / Replica has more GTIDs than the source has, using the source's SERVER_UUID — shows the importance of thinking before acting. I am glad a non-DBA Colleague asked me about it, because if he had restarted replication, it would have caused a much bigger mess. Often, we are tempted — or pushed — to just restart things
The latest from the MySQL community
Ideas, releases, practical guides, and perspectives from the people building with MySQL.
This lesson should have been learned with the CREATE TABLE of death, but it is worth a refresh.
Do not uselessly grant CREATE and ALTER TABLE
The reason I am posting this reminder is that another crashing bug related to DDL came to my attention. This bug is only fixed in a recent version of MySQL (probably not affecting 5.6 and 5.7), so if you are running the latest 8.0 or 8.4, you should
This is a quick one. My attention was recently brought (thanks Simon) on a relatively recent comment (25 Nov 2025) in Bug #103672 - Binlog compression transaction payload event exceeds max allowed packet :
The underlying server bug was fixed in 8.0.34 in BUG#33588473. The server now falls back to writing the transaction without compression, if the compressed size would
I am upset about this one : I have a hard time not seeing this as negligence, and it starts to become a pattern... So please forgive me if this post is not my most diplomatic, because I really think someone deserves a kick in the butt ! But what is all this about...
There is a MySQL bug, which can lead to data corruption, opened for 8.0 in September 2023, fixed in MySQL 8.4.0 (
While doing benchmarks on 5.7 and 8.0, I came across a performance regression in MySQL 8.0 over 5.7 and opened a bug (Bug #111353 : 3x Performance Regression from 5.7 to 8.0 on ALTER TABLE FORCE). There has been recent activity on this bug, showing an easy workaround. This, even if it is known since 16 July 2024, has not been talked about much, so this deserves a blog post.
Warning! Recently, Jean-François Gagné opened a bug on bug.mysql.com #115517; unfortunately, the bug is now private. However, the bug looks quite serious. We at Percona have performed several tests and opened the issue PS-9306 to investigate the problem. In short, what happens is that if you create a large number of tables, like 10000, the […]
Yes, you read this correctly: because the MySQL client is insecure and allows running arbitrary commands, and because mysqldump blindly trusts the server it is dumping from, a hostile MySQL Server on which mysqldump is executed could trigger arbitrary command execution (also known as a remote code execution). This post raises awareness on this vulnerability and shows how a secure MySQL
Which is faster: LIMIT 1 or LIMIT 20?
Presumably, fetching less rows is faster than fetching more rows.
But for 16 years (since 2007) the MySQL query optimizer has had
a “bug”† that not only makes LIMIT 1 slower
than LIMIT 20 but can also make the former a table
scan, which tends to cause problems. This happened last week
where I work, and although MySQL DBAs are familiar with this bug,
I’m writing this blog post for developers to more clearly
illustrate and explain what’s going on and why because it’s
really counterintuitive.
Which is faster: LIMIT 1 or LIMIT 20?
Presumably, fetching less rows is faster than fetching more rows.
But for 16 years (since 2007) the MySQL query optimizer has had
a “bug”† that not only makes LIMIT 1 slower
than LIMIT 20 but can also make the former a table
scan, which tends to cause problems. This happened last week
where I work, and although MySQL DBAs are familiar with this bug,
I’m writing this blog post for developers to more clearly
illustrate and explain what’s going on and why because it’s
really counterintuitive.
Which is faster: LIMIT 1 or LIMIT 20?
Presumably, fetching less rows is faster than fetching more rows.
But for 16 years (since 2007) the MySQL query optimizer has had
a “bug”† that not only makes LIMIT 1 slower
than LIMIT 20 but can also make the former a table
scan, which tends to cause problems. This happened last week
where I work, and although MySQL DBAs are familiar with this bug,
I’m writing this blog post for developers to more clearly
illustrate and explain what’s going on and why because it’s
really counterintuitive.