Planning, compatibility testing, performance validation, application readiness, and rollback strategies for a large production deployment MySQL 8.0 reached its official End of Life (EOL) in April 2026 alongside the final release of version 8.0.46, but specific support extensions are available depending on your hosting environment. Oracle extended support for MySQL 8.0 instances in MySQL HeatWave […]
The latest from the MySQL community
Ideas, releases, practical guides, and perspectives from the people building with MySQL.
We’ve recently been dealing with an interesting customer case where a PXC version upgrade from 5.7 to 8.0 seemed to trigger a completely unexpected problem. Even though the workload and MySQL settings did not change, all PXC members began exhibiting sparse but regular bursts of massive disk writes. Yet the MySQL side workload statistics that we gathered during those bursts did not explain the volume of them at all!
Analyzing these bursts further with pidstat and iostat confirmed that the mysqld process was indeed the sole source of excessive disk writes, and digging further showed the responsible threads to be the Galera receiver thread responsible for subscribing to the replication stream, as well as the main connection threads on the writer node, or Galera applier …
[Read more]Last week, I shared a meme in the MySQL Group on LinkedIn about using SELECT * in MySQL queries. Today, I’m backing up the punchline with something every joke desperately needs: a technical explanation. We’ve all written queries like this: It’s quick. It’s convenient. It lets you postpone remembering whether the column is called customer_name, […]
At Percona Live Europe 2026, Dmitry Lenev and I presented JavaScript in My Database? Over My Dead Query, the story of component_js_lang, the V8-based JavaScript engine for Percona Server for MySQL 8.4. That experience told us few things:
- The presentation was seen as “for developers”
- What most DBA or DevOps heard was “JavaScript in the database” = “application logic in the database”
This let most of the people pictured developers shipping their business logic into stored procedures. Order workflows, pricing rules, REST calls, all running inside mysqld.
That picture is wrong, and in this post I want to replace it with the right one, using the same four demos we showed on stage.
The fear is reasonable, the target is wrong
DBAs have earned their skepticism. Many of us have inherited a schema where thousands of lines of stored …
[Read more]At Percona Live Europe 2026, Dmitry Lenev and I presented JavaScript in My Database? Over My Dead Query, the story of component_js_lang, the V8-based JavaScript engine for Percona Server for MySQL 8.4. That experience told us few things:
- The presentation was seen as “for developers”
- What most DBA or DevOps heard was "JavaScript in the database" = "application logic in the database"
This let most of the people pictured developers shipping their business logic into stored procedures. Order workflows, pricing rules, REST calls, all running inside mysqld.
That picture is wrong, and in this post I want to replace it with the right one, using the same four demos we showed on stage.
The fear is reasonable, the target is wrong
DBAs have earned their skepticism. Many of us have inherited a schema where thousands of lines of stored procedures …
[Read more]In the first post, we exported MySQL OpenTelemetry metrics directly to Prometheus. In the second, we used DBA questions to decide which metrics matter. This post turns those questions into a Grafana dashboard. The objective is not to display every available metric. It is to make the next investigation obvious. When workload changes, a DBA […]
We are pleased to announce the launch of VillageSQL Server 0.0.7.
You now have a License to Query (please note this post
contains lots of James Bond 007 database puns). In this release,
the mysql-8.4 build tracks MySQL Server 8.4.11, the
mysql-9.7 build tracks MySQL Server 9.7.2, and the
percona-8.4 build carries Percona Server 8.4.11-11.
Highlights of this release include the following:
- The server can now describe a custom index, store its data, report it, and run a nearest-neighbor search through it. This is the foundation of custom indexing and vector search we demoed at Percona Live Amsterdam 2026.
-
CLONEnow checks that the recipient has your extensions before it copies anything. - An extension can give every connection its own copy of a setting. …
Benchmarks · HNSW vector search
MyVector adds approximate nearest-neighbor search to stock MySQL — no separate vector database. We put it on identical hardware across three MySQL versions, added MariaDB’s native vector type as a reference, and measured build time, throughput, latency, and recall on the same data.
askdba/myvector · live dashboard at bench.myvector.online
548peak ANN queries/sec (MySQL 9.7), ~1.8 ms median 0.95best recall@10 (MariaDB 12.3) once tuned 4×engines, one 50k×128 workload, identical 4 vCPU / 24 GB slices
Why benchmark this at all
Vector search usually means standing up a dedicated database next to your primary store, then keeping the two in sync. MyVector takes the other path: it lives inside MySQL as UDFs and stored procedures, builds an HNSW index over a column of vectors, and answers …
[Read more]
When you rebuild a table with MySQL’s Online DDL, the operation
can fail partway through with a Duplicate Entry
error:
1
2
mysql> alter table tt add c3 int, algorithm=inplace;
ERROR 1062 (23000): Duplicate entry '1' for key 'tt.uk_c2'
This is a long-standing, well-known problem — it has existed ever since Online DDL was introduced in MySQL 5.6, and it appears across several bug reports:
- BUG#76895 — Adding new column OR Drop column causes duplicate PK error
- BUG#77572 — The bogus duplicate key error in online ddl with incorrect key name
- BUG#98600 — Optimize table fails with duplicate entry on UNIQUE …
Thread Pool in Percona Server and MySQL (Part 2)
The previous Part 1 focused on explaining the idea of thread pool, configuration options and analysis of thread pool efficiency in Percona Server for MySQL 9.7.1-1 against the base line, which is the same server without thread pooling.
We recommend reading the post with Part 1 before proceeding with reading Part 2 in the current post.
MySQL 26.7.0 with and without thread pool:
For better understanding of Percona Server 9.7.1-1 and MySQL 26.7.0 / 9.7.2 thread pool performance against each other we will start with a brief look at MySQL on its own.
The test runs did not find any significant differences in the performance of the thread pool between …
[Read more]