Showing entries 1 to 10 of 36835
10 Older Entries »
Blog Series: MySQL Configuration Management

MySQL configuration management remains a hot topic, as I’ve noticed on numerous occasions during my conversations with customers.

I thought it might be a good idea to start a blog series that goes deeper in detail into some of the different options, and what modules potentially might be used for managing your MySQL database infrastructure.

Configuration management has been around since way before the beginning of my professional career. I, myself, originally began working on integrating an infrastructure with my colleagues using Puppet.

Why is configuration management important?

  • Reproducibility. It’s giving us the ability to provision any environment in an automated way, and feel sure that the new environment will contain …
[Read more]
Continuous MySQL backup validation: Restoring backups

Our system continuously tests our ability to restore our databases from backups, ensuring that we can quickly and reliably recover from an outage.

Everyone's Capable of a Performance Mindset

The other day I was speaking with someone who asked me a few times how we find and hire engineers who are capable of building performance/monitoring tools. I didn't have a great answer in the moment, but after the conversation was over, I realized it's because I fundamentally believe we all are capable of understanding and solving systems performance problems. We're all brainiacs, so to speak.

This has been a theme of my career. If you look back at my pre-Percona days, read the 2nd and then the 3rd edition of my book High Performance MySQL, examine my opensource software, look at the ebooks and white papers I've written, or listen to the recordings of any of my …

[Read more]
Running MySQL Cluster 7.5 in Docker, part 2

After the heady excitement of getting my first MySQL Cluster 7.5.4 set up nicely running in docker, I quickly discovered that I wanted to re-factor most of it, implement the bits I’d left out, and extend it more to meet some of my other testing needs, like being able to run multiple deployments of similar types in parallel for simple CI.

I’ve now released this as v1.0.

The output is a little different to before, but now it’s possible to set up multiple clusters, of different shapes if you like, on different docker networks. You simply provide a unique value for the new –base-network and –name parameters when using the …

[Read more]
MySQL Connector/NET 7.0.6 m5 development has been released

MySQL Connector/Net 7.0.6 is the third development release that expands cross-platform support to Linux and OS X when using Microsoft’s .NET Core framework. Now,
.NET developers can use the X DevAPI with .NET Core and Entity Framework Core
(EF Core) 1.0 to create server applications that run on Windows, Linux and OS X.
We are very excited about this change and really look forward to your feedback on it!

MySQL Connector/Net 7.0.6 is also the fifth development release of MySQL Connector/Net to add support for the new X DevAPI. The X DevAPI enables
application developers to write code that combines the strengths of the
relational and document models using a modern, NoSQL-like syntax that
does not assume previous experience writing traditional SQL.

To learn more about how to write applications using the X DevAPI, see

[Read more]
My slides of devops days Ghent, Belgium are now online

Today I delivered a session related on what is MySQL implementing to take the make the devops life easier.

You can find the slides below:

Benchmarketing MyRocks

I have been spending time understanding MyRocks performance for new workloads including benchmarks that potential MyRocks users run. One of those benchmarks is sysbench and I wrote a script to make it easier for me to run.


Like most synthetic benchmarks sysbench is valuable but has its flaws. It helps to understand the flaws when looking at results. Most uses of sysbench are for very small databases. A typical run for me is 8 tables with 1M rows per table. That uses about 2G of space with uncompressed InnoDB tables. For a typical MyRocks configuration that will use a 3 level LSM tree with data in levels 0, 1 and 2 and I usually disable compression for those levels. And if you are running performance tests for a 2G database …

[Read more]
Completing the MySQL Query Tuning Trilogy: working with optimizer & SQL tuning

Thanks to everyone who participated in this week’s webinar on working with optimizer and SQL tuning. In this session, Krzysztof Książek, Senior Support Engineer at Severalnines, discussed how execution plans are calculated. He also took a closer look at InnoDB statistics, how to hint the optimizer and finally, how to optimize SQL.

Watch the replay

The complete MySQL Query Tuning Trilogy is available to watch online, so if you missed the first two parts, you can now catch up with them on demand.

MySQL Query Tuning Trilogy

An in-depth look into the ins and outs of optimising MySQL queries

When done right, tuning MySQL queries and indexes can significantly increase the performance of your application as well as decrease response times. This is why we’ve covered this complex …

[Read more]
Thoughts on MySQL 8.0 Invisible Indexes

MySQL 8.0 has a new feature called “invisible indexes,” which allow you to quickly enable/disable indexes from being used by the MySQL Optimizer.

I wanted to share some of my first experiences and thoughts about this new feature.

Why is it good for us?

There are a couple of use cases. One of them is if you want to drop an index, but want to know the effect beforehand. You can make it invisible to the optimizer. It is a quick metadata change to make an index invisible. Once you are sure there is no performance degradation, you can then drop the index.

The main point is that the invisible index is unavailable for use by the optimizer, but it is still present and kept up-to-date by write operations. The optimizer won’t use it, even if we try to “FORCE INDEX”. I think we should be …

[Read more]
MySQL 8.0: Retiring support for libmysqld

Starting with MySQL 8.0, we will drop libmysqld (aka “embedded server”). This change will affect only a handful of users, but for context let me start with an introduction.


libmysqld (also referred to as “the embedded server”) is a way of using MySQL without the client server protocol.…

Showing entries 1 to 10 of 36835
10 Older Entries »