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 1 to 10 of 1319 « Previous | Next »
Displaying posts with tag: Linux (reset)
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]
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)

Technical Analysis: Why 0.2ms Queries Can Still Result in Low QPS

It is a classic trap: you spend a week fine-tuning your cache and your database hits only to realize your application is essentially running with the handbrake on. I saw this with my tests: MySQL and Readyset were returning rows in 0.2 ms, but the application throughput remained capped at 40 queries per second (QPS).

The database isn’t the bottleneck, and the cache isn’t the bottleneck. Your application code is simply leaving performance on the table. While running some demos recently, I found that a Node.js service went from 40 QPS to over 6,000 QPS, which is a 150x improvement without changing a single database setting or query plan. Here is a post-mortem of how application-layer bottlenecks can neutralize even the most aggressive infrastructure wins.

The “Fairness” Trap: Event Loop Lag

In Node.js and similar async runtimes we are taught to “be …

[Read more]
Deploying on OCI with the starter kit – part 2

In part 1, we saw how to deploy several resources to OCI, including a compute instance that will act as an application server and a MySQL HeatWave instance as a database. In this article, we will see how to SSH into the deployed compute instance. Getting the key To connect to the deployed compute instance, […]

Deploying on OCI using the starter kit – part 1

If you want to create a new application, test it, and deploy it on the cloud, Oracle Cloud Infrastructure provides an always-free tier for compute instances and MySQL HeatWave instances (and more). If you are a developer, it can also be complicated to start deploying to the cloud, as you need to figure out the […]

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]
Dbeaver: For postgres 2 mysql data migration.

Hi all,

I’ve just been playing with DBeaver community and have migrated an old postgres schema to mysql with very little hassle.

After this, I’ve looked more into Dbeaver and found the following survey: https://dbeaver.com/2024/05/31/survey-results-shaping-the-future-with-customer-feedback/

Quite interesting!

Especially as one would think that a data migration task is more a DBA task. Good to know!

I also found the following links useful:

dbeaver.com/docs/dbeaver/Data-transfer

No option to dump DB without data #2176

[Read more]
MySQL Analysis: With an AI-Powered CLI Tool

MySQL Analysis: With an AI-Powered CLI Tool

As DBAs with MySQL we often live on a Linux terminal window. We also enjoy free options when available. This post shows an approach that allows us to stay on our terminal window and still use an AI-powered tool. You can update to use other direct AI providers but I set this example up to use aimlapi.com as it brings multiple AI models to your terminal for free with limited use or very low cost for more testing.

Note: I'm not a paid spokesperson for AIMLAPI or anything - this is just an easy example to highlight the idea.

The Problem

You're looking at a legacy database with hundreds of tables, each with complex relationships and questionable design decisions made years ago. The usual process involves:

  • Manual schema inspection
  • Cross-referencing documentation (if it exists)
  • Running multiple EXPLAIN queries
[Read more]
MySQL Group Replication complete setup with SSL on MySQL 9.3.0 Innovation release

In this blog, I am going to explain the complete process involved in the MySQL group replication setup using SSL. The blog covers the complete MySQL config files as well as steps. I used the following aspects for my testing purpose.

  • MySQL 9.3.0 Inn ovation release
  • Ubuntu 24.10
  • 3 physical servers

I also enabled the hostname based authentications between the three VMs. So that, I don’t need to provide the IPs explicitly each time. To achieve this, I used to update the the file “/etc/hosts” with following entries.

root@gr1:~# cat /etc/hosts | grep gr
198.19.249.194 gr1 gr1
198.19.249.116 gr2 gr2
198.19.249.163 gr3 gr3

---- Test
root@gr1:~# telnet gr2 3306
Trying 198.19.249.116...
Connected to gr2.
---- Works!

Creating SSL certificates:

As I am going to setting up the SSL based group replication, I need to create the required certificates …

[Read more]
Best MySQL GUI Tools for Linux

Linux has the reputation of an operating system for programmers. So, if you are a software developer who designs MySQL-based solutions, chances are high that you will do it on Linux. Thus, it would be great to have a MySQL IDE for Linux to simplify the work. But the question arises: is there an appropriate Linux DB tool for MySQL with a GUI?

The post Best MySQL GUI Tools for Linux appeared first on Devart Blog.

« Previous | Next »