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 121 to 130 of 45382 « Previous | Next »
Big O for MySQL: Why the Same Query Gets Slow at Scale

You ship a query on Monday. It runs in 2 ms. Six months later, the same query — same SQL, same indexes — takes 4 seconds. Nothing changed. Except one thing did: the table grew.

Welcome to the everyday problem Big O was invented to describe. This post is a practical, MySQL-flavoured tour of time complexity. We’ll keep the math light, the pictures clear, and we’ll finish with the exact algorithms your database uses to keep your queries fast (or slow).

What is Big O, really?

Forget seconds. Big O is not a unit of time. It’s a way of describing how the cost of an algorithm grows as the input grows. Specifically: if you double the data, does the work double? Stay the same? Quadruple? That shape is the algorithm’s complexity.

We call the input size n. A few shapes come up over and over in real systems:

  • O(1) — …
[Read more]
Introducing Dynamic Data Masking in MySQL: Protect Sensitive Data Without App Changes

Production data is invaluable for day-to-day operations—support, troubleshooting, analytics, and development. But when that data contains sensitive fields such as SSNs, emails, phone numbers, or other identifiers, broad read access can quickly become unnecessary exposure.  Just as importantly, many organizations operate under regulatory and contractual requirements that expect strong controls around access to sensitive data—often including data masking as […]

Dynamic Data Masking in MySQL: Protect Sensitive Data Without App Changes

Production data is invaluable for day-to-day operations—support, troubleshooting, analytics, and development. But when that data contains sensitive fields such as SSNs, emails, phone numbers, or other identifiers, broad read access can quickly become unnecessary exposure.  Just as importantly, many organizations operate under regulatory and contractual requirements that expect strong controls around access to sensitive data—often including data masking as […]

Readyset Is Ready for MySQL 9.7 - Three Commands With rdst

MySQL 9.7.0 LTS landed today, and we had the pleasure of watching the announcement live — and we were the first ones to download. If you've already pulled the binaries and you're poking at it in a lab, here's the news: Readyset already supports it.

The point isn't that Readyset happens to work with 9.7. The point is that we were prepared for the launch. Our compatibility matrix has been running 9.7 pre-release builds, so the same readysettech/readyset:latest image you can docker pull right now already accepts 9.7 as an upstream. Today's job is to prove it, not to port it.

Step 1 - Register MySQL 9.7 as an rdst target

rdst stores connection profiles in ~/.rdst/config.toml. One non-interactive command adds the target, and the …

[Read more]
Strengthening caching_sha2_password: Adding PBKDF2-SHA512 Support

MySQL is extending caching_sha2_password to support PBKDF2 with SHA-512 as a new password storage format. This is a meaningful step forward for password security because it strengthens stored password transformations without requiring a new authentication plugin, without breaking clients, and without forcing an all-at-once migration. Existing accounts continue to work, new passwords can use the stronger format, and administrators […]

Upgrade to OpenSSL 3.5

Overview Some MySQL distribution packages, such as the generic Linux build, bundle an OpenSSL dependency within the same .tar.gz archive. With the new MySQL 8.0.46, 8.4.9 and 9.7.0 releases, we are upgrading those bundled packages from using OpenSSL 3.0 to the new OpenSSL 3.5 LTS branch. Native OS packages, such as .rpm and .deb, continue […]

MySQL Performance : OpenSSL-3.5.5 Evaluation

The following report is covering performance evaluation of the currently available OpenSSL releases when they are used by MySQL in CPU-intensive OLTP workloads. However, the main focus is on OpenSSL-3.5.5, which will be used by default in the next MySQL releases.

Read more... (19 min remaining to read)

MySQL 9.7.0 LTS Is Now Available: Expanded Community Capabilities and Dynamic Data Masking for Enterprise

With MySQL 9.7.0 LTS, MySQL establishes its next long-term support release line, expands key capabilities in Community Edition, and introduces Dynamic Data Masking for Enterprise users. The April releases mark an important milestone for MySQL. With the GA of MySQL 9.7.0 LTS, MySQL moves from the 9.x innovation series to a new Long-Term Support release line. This begins […]

Percona Operator for MySQL 1.1.0: PITR, Incremental Backups, and Compression

The latest release of the Percona Operator for MySQL, 1.1.0, is here. It brings point-in-time recovery, incremental backups, zstd backup compression, configurable asynchronous replication retries, and a set of stability fixes. This post walks through the highlights and how they help your MySQL deployments on Kubernetes.

 

Percona Operator for MySQL 1.1.0

Running stateful databases on Kubernetes means your backup and recovery story has to be airtight. A full nightly backup is fine, until the DBA drops a table at 2 PM and you’re looking at 14 hours of lost work. Or until your storage bill grows faster than your actual data because every backup is a …

[Read more]
Deploying Cross-Site Replication in Percona Operator for MySQL (PXC)

Having a separate DR cluster for production databases is a modern day requirement or necessity for tech and other related businesses that rely heavily on their database systems. Setting up such a [DC -> DR] topology for Percona XtraDB Cluster (PXC), which is a virtually- synchronous cluster, can be a bit challenging in a complex Kubernetes environment.

Here, Percona Operator for MySQL comes in handy, with a minimal number of steps to configure such a topology, which ensures a remote side backup or a disaster recovery solution.

So without taking much time, let’s see how the overall setup and configurations look from a practical standpoint.

 

PXC Cross-Site/Disaster Recovery

 

DC Configuration

1) Here we have a three-node PXC cluster running on the DC side.

shell> kubectl get pods -n pxc
NAME                                               READY   STATUS …
[Read more]