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 311 to 320 of 45409 « Previous | Next »
Extending Flexibility in MySQL HeatWave Maintenance: Introducing Configurable Maintenance

Align upgrades with your business schedules, minimize disruption, and plan version transitions with confidence, all while maintaining the reliability and compliance you expect from MySQL HeatWave. We are also extending Innovation release available cycle from 3 months to 5 months, this enables customers to stay on the same innovation release version for longer period of time.

MySQL Memory Usage: A Guide to Optimization

Struggling with MySQL memory spikes? Knowing how and where memory is allocated can make all the difference in maintaining a fast, reliable database. From global buffers to session-specific allocations, understanding the details of MySQL’s memory management can help you optimize performance and avoid slowdowns. Let’s explore the core elements of MySQL memory usage with best practices for trimming excess in demanding environments.

How MySQL Uses Memory

MySQL dynamically manages memory across several areas to process queries, handle connections, and optimize performance. The two primary areas of memory usage include:

Global Buffers

These are shared by the entire MySQL server and include components like the InnoDB buffer pool, key buffer, and query cache. The InnoDB buffer pool is particularly memory-intensive, especially in data-heavy applications, as it stores frequently accessed data and indexes to speed up …

[Read more]
MySQL Basics: Don’t Lose It—Backing Up and Restoring Your Database

Learn how to safeguard your MySQL database with simple, reliable backup and restore techniques! This final post in the beginner series uses fun library analogies and clear MySQL Shell examples to ensure your data stays safe—no matter what surprises come your way.

Surprise with innodb_doublewrite_pages in MySQL 8.0.20+

In a recent post, The Quirks of Index Maintenance in Open Source Databases, I compared the IO load generated by open source databases while inserting rows in a table with many secondary indexes. Because of its change buffer, InnoDB was the most efficient solution. However, that’s not the end of the story. Evolution of the […]

On Database Query Performance in HeatWave and MySQL. Interview with Kaan Kara 

 Of course, in practice, no query optimizer is perfect and there will be edge cases where the way a query is written will impact its performance.”

Q1. What are your current responsibilities as Principal Member of Technical staff?

Kaan Kara : I am contributing as the tech lead for query execution in HeatWave. My main responsibility is implementing new features in HeatWave, maintaining its stability, and supporting our customers with their HeatWave-related use cases.

Q2. Let´s talk about improving database query execution time. The way a query is written has a massive impact on its performance, and developers often face hurdles in structuring them optimally. What is your take on this?

Kaan Kara : SQL is a declarative language. That means, in ideal terms, the database optimizer should produce the best …

[Read more]
How to checksum on AWS RDS for MySQL Replication 8.0 > 8.4

During a MySQL upgrade process the RDS replication between MySQL 8.0 and 8.4 was configured. I wanted to ensure the data was consistent for any random reason. This post is…

The post How to checksum on AWS RDS for MySQL Replication 8.0 > 8.4 first appeared on Change Is Inevitable.

MySQL Basics: Safe and Sound—User Management and Database Security

Keep your MySQL database protected with beginner-friendly advice on user management and security! Learn how to create users, grant and revoke privileges, and safeguard your data using library-themed examples and practical tips. Essential reading for every data explorer eager to lock up their digital collection.

Announcing Vitess 23.0.0

Announcing Vitess 23.0.0 # We’re excited to release Vitess 23.0.0 — the latest major version of Vitess — bringing new defaults, better operational tooling, and refined metrics. This release builds on the strong foundation of version 22 and is designed to make deployment and observability smoother, while continuing to scale MySQL workloads horizontally with confidence. ✅ Why This Release Matters # For production users of Vitess, this release is meaningful in several ways:

Scoped Vector Search with the MyVector Plugin for MySQL – Part II

Subtitle: Schema design, embedding workflows, hybrid search, and performance tradeoffs explained.

Quick Recap from Part 1

In Part 1, we introduced the MyVector plugin — a native extension that brings vector embeddings and HNSW-based approximate nearest neighbor (ANN) search into MySQL. We covered how MyVector supports scoped queries (e.g., WHERE user_id = X) to ensure that semantic search remains relevant, performant, and secure in real-world multi-tenant applications.

Now in Part 2, we move from concept to implementation:

  • How to store and index embeddings
  • How to design embedding workflows
  • How hybrid (vector + keyword) search works
  • How HNSW compares to brute-force search
[Read more]
Checking Your MySQL Server Before an Upgrade with MySQL Shell

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 the peak of business activity.

Fortunately, MySQL Shell ships with a utility to help validate whether your server is actually ready before you pull the trigger: util.checkForServerUpgrade().

In this post, we’ll walk you through the installation of MySQL Shell and running the upgrade checker.

Installing MySQL Shell

If you don’t already have MySQL Shell available on your server, install it first. Packages are available at:

[Read more]