Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 181 to 190 of 45381 « Previous | Next »
Does Every PXC Node Need XtraBackup Installed?

One question that surfaces regularly in the Percona forums: Does every node in a Percona XtraDB Cluster (PXC) need to have XtraBackup installed? It's a fair question, especially when managing a mixed environment or trying to minimize the software footprint on certain nodes. Here is what the actual mechanics and testing confirm.

The Short Answer (But Read On)

It depends on what you want that node to do. The nuance matters quite a bit here, so it is worth walking through how State Snapshot Transfer (SST) works in PXC and why XtraBackup's presence — or absence — on a given node is significant.

A Quick Refresher on SST in PXC

When a new node joins a Percona XtraDB Cluster, or when an existing node has been down long enough that Incremental State Transfer (IST) is no longer possible, the cluster performs a State Snapshot Transfer (SST). This is essentially a full data …

[Read more]
ODBC Driver for MySQL: Open-Source vs Commercial (2026) 

The MySQL ODBC driver is what keeps BI tools, reporting systems, and ETL pipelines connected to MySQL without errors. Teams have depended on it for years, and it’s still vital today, especially with MySQL ranked #2 worldwide in February 2026.  However, not all ODBC drivers are built alike. There are two categories: open-source options and commercial ones. While both connect applications to […]

The post ODBC Driver for MySQL: Open-Source vs Commercial (2026)  appeared first on Devart Blog.

Determining the Correct innodb_buffer_pool_chunk_size

A common source of instability in MySQL environments is the unexpected growth of memory usage at startup. You might set your innodb_buffer_pool_size to 16GB, only to find the process consuming 18GB or 20GB. This happens because MySQL enforces a strict geometric relationship between the total size, the number of instances, and the chunk size.

If these parameters are not aligned, the storage engine automatically rounds the total size upward. To maintain control over your server’s RAM, you must define innodb_buffer_pool_chunk_size with precision.

The Alignment Logic

The InnoDB buffer pool is organized into a hierarchy: the pool is split into instances to improve concurrency, and each instance is composed of chunks. According to the MySQL technical specifications, the total buffer pool size must be a multiple of this specific calculation:

Unit = …

[Read more]
Checking if MySQL Tables Are Loaded in HeatWave In-Memory: A Quick Guide

If you’re working with MySQL HeatWave, Oracle’s powerful in-memory query accelerator for analytics workloads, you might find yourself needing to verify whether your tables are properly loaded into that speedy in-memory columnar storage engine known as RAPID. HeatWave is all about boosting performance by offloading analytical queries from the standard MySQL row-based storage to an optimized in-memory […]

More than Flushing (also Caching) for innodb_flush_method, and Missing Release Candidate

Something changed in MySQL 8.4 related to caching, and it is easy to miss, so it deserves a post.  And a subject adjacent to this is the missing Release Candidate for MySQL 8.4 LTS, with my hope that the next LTS will have a Release Candidate, so I also cover this topic below.

(if you are not interested in Caching and Flushing, you can jump directly to the section about Release Candidate)

Understanding MySQL SQL Modes: A Quick Guide

If you’ve ever dived into MySQL configuration, you’ve probably come across the term “SQL modes.” These are powerful settings that can change how MySQL interprets SQL queries, handles data validation, and even enforces certain standards. But with great power comes great responsibility – choosing the wrong mode can lead to unexpected behaviors, data inconsistencies, or […]

Join the MySQL Community Roadmap Webinar

As we shared in the MySQL Belgium Days in January, and summarized in the latest blog post , we are excited to invite you to an upcoming MySQL community webinar. This is an opportunity to connect directly with the MySQL team. Mark your calendars for Wednesday, February 25, 2026, at 10:00 am ET and join […]

MySQL + Neo4j for AI Workloads: Why Relational Databases Still Matter

So I figured it was about time I documented how to build persistent memory for AI agents using the databases you already know. Not vector databases - MySQL and Neo4j.

This isn't theoretical. I use this architecture daily, handling AI agent memory across multiple projects. Here's the schema and query patterns that actually work.

The Architecture

AI agents need two types of memory:

  • Structured memory - What happened, when, why (MySQL)
  • Pattern memory - What connects to what (Neo4j)

Vector databases are for similarity search. They're not for tracking workflow state or decision history. For that, you need ACID transactions and proper relationships.

The MySQL Schema

Here's the actual schema for AI agent persistent memory:

-- Architecture decisions the AI made
CREATE TABLE architecture_decisions (
    id INT …
[Read more]
MySQL 8.0 JSON Functions: Practical Examples and Indexing

This post covers a hands-on walkthrough of MySQL 8.0's JSON functions. JSON support has been in MySQL since 5.7, but 8.0 added a meaningful set of improvements — better indexing strategies, new functions, and multi-valued indexes — that make working with JSON data considerably more practical. The following documents several of the most commonly needed patterns, including EXPLAIN output and performance observations worth knowing about.

This isn't a "JSON vs. relational" debate post. If you're storing JSON in MySQL, you probably already have your reasons. The goal here is to make sure you're using the available tooling effectively.

Environment

mysql> SELECT @@version, @@version_comment\G
*************************** 1. row ***************************
        @@version: 8.0.36
@@version_comment: MySQL Community Server - GPL

Testing was done on a VM with 8GB RAM and …

[Read more]
A Guide to Accelerating Your Application with Valkey: Caching Database Queries and Sessions

Modern applications often rely on multiple services to provide fast, reliable, and scalable responses. A common and highly effective architecture involves an application, a persistent database (like MySQL), and a high-speed cache service (like Valkey).

In this guide, we’ll explore how to integrate these components effectively using Python to dramatically improve your application’s performance.

Understanding the 3-Server Architecture

In our example, the setup looks like this:

Application(172.31.68.72)
|
|-- MySQL client --> Percona Server (172.31.67.228)
|
|-- Valkey client --> Valkey Server (172.31.22.118)

The Application: The brain of the system. It decides when to query the database and when to rely on cached data.

Valkey: An in-memory key-value store optimized for extremely fast reads and writes.

MySQL: The …

[Read more]