Nov 23, 2020 |
Insight for DBAs, Insight for Developers, MySQL
If I ask you if running EXPLAIN on the query can change your database, you will probably tell me NO; it is common sense. EXPLAIN should show us how the query is executed, not execute the query, hence it can’t change any data. Unfortunately, this is the case where common sense does not apply to […]
Nov 02, 2020 |
Insight for DBAs, Monitoring, MySQL, Percona Software
Understanding how MySQL uses memory is key to tuning it for optimal performance as well as troubleshooting cases of unexpected memory usage, i.e. when you have MySQL Server using a lot more than you would expect based on your configuration settings. Early in MySQL history, understanding memory usage details was hard and included a lot […]
Oct 14, 2020 |
Insight for DBAs, Monitoring, Percona Software, PostgreSQL
I am very passionate about database observability, and I believe query performance observability is the most important insight you can get in your database. Why? Because if you look from an application developer’s point of view, once a database is provisioned and you can connect to it, responding to your queries promptly and correctly is […]
Sep 28, 2020 |
Monitoring, Percona Software
Percona Monitoring and Management 2.10 shipped a few days ago and while it is a minor release, it introduces some features which I absolutely love. In this blog post, I will talk about those features – what they are and why they are worth loving. 🙂 1. Query Search This is a great feature if […]
Sep 11, 2020 |
Insight for DBAs, Insight for Developers, MySQL, Percona Software
One of the questions you often will be faced with operating a Linux-based system is managing memory budget. If a program uses more memory than available you may get swapping to happen, oftentimes with a terrible performance impact, or have Out of Memory (OOM) Killer activated, killing process altogether. Before adjusting memory usage, either by […]
Aug 28, 2020 |
Insight for DBAs, MySQL, ProxySQL
ProxySQL brings a lot of value to your MySQL infrastructures such as Caching or Connection Multiplexing but it does not come free — your database needs to go through additional processing traffic which adds some overhead. In this blog post, we’re going to discuss where this overhead comes from and measure such overhead. Types of […]
Jul 15, 2020 |
Insight for DBAs, Monitoring, MySQL, Percona Software
When I speak about MySQL performance troubleshooting (or frankly any other database), I tend to speak about four primary resources which typically end up being a bottleneck and limiting system performance: CPU, Memory, Disk, and Network. It would be great if when seeing what resource is a bottleneck, we could also easily see what queries […]
Jun 17, 2020 |
Monitoring, MySQL, Percona Software
The RED Method (Rate, Errors, Duration) is one of the more popular performance monitoring approaches. It is often applied to Monitoring Microservices though there is nothing that prevents it from being applied to databases like MySQL. In Percona Monitoring and Management (PMM) v2 we have all the required information stored in the ClickHouse database, and […]
Jun 16, 2020 |
MongoDB, Open Source
If you read the MongoDB SSPL FAQ it doesn’t sound like too big of a deal, unless you’re a “big, nasty cloud vendor.” But, I’ve got news for you — the implications for you are much deeper and worse than you might think from reading the FAQ! MongoDB has always been a “reluctant open source […]
Apr 16, 2020 |
MySQL
Recently, I got access to the list of MySQL bug reports from bugs.mysql.com which someone crawled and stored in a MySQL database. I thought it would be interesting to see who the heroes are of MySQL bug reporting! Top MySQL Bug Reporters Ever
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
select rank() over(order by count(*) desc) my_rank, count(*) cnt, reporter from bugs where reporter != "OCA Admin" and reporter != "[ name withheld ]" group by reporter order by cnt desc limit 20; +---------+------+--------------------+ | my_rank | cnt | reporter | +---------+------+--------------------+ | 1 | 1234 | Shane Bester | | 2 | 869 | Peter Gulutzan | | 3 | 818 | Daniël van Eeden | | 4 | 587 | Joerg Bruehe | | 5 | 572 | Philip Stoev | | 6 | 568 | Peter Laursen | | 7 | 564 | Roel Van de Paar | | 8 | 526 | Guilhem Bichot | | 9 | 524 | Jonathan Miller | | 10 | 476 | Hartmut Holzgraefe | | 11 | 431 | Simon Mudd | | 12 | 389 | Matthias Leich | | 13 | 388 | Todd Farmer | | 14 | 377 | Alexander Nozdrin | | 15 | 375 | Jonas Oreland | | 16 | 372 | Sven Sandberg | | 17 | 354 | Sveta Smirnova | | 18 | 337 | Paul DuBois | | 19 | 336 | Mark Callaghan | | 20 | 335 | Laurynas Biveinis | +---------+------+--------------------+ 20 rows in set (0.19 sec) |
Congrats Shane Bester, you kick ass! I thought this is also […]
Apr 14, 2020 |
Benchmarks, MySQL, ProxySQL
When I run a benchmark and want to measure the CPU efficiency of something, I find it’s often a good choice to run a benchmark program, as well as the database, on the same server. This is in order to eliminate network impact and to look at single-thread performance, to eliminate contention. Usually, this approach […]
Apr 13, 2020 |
Benchmarks, MySQL, Percona Software
When connecting to a local MySQL instance, you have two commonly used methods: use TCP/IP protocol to connect to local address – “localhost” or 127.0.0.1 – or use Unix Domain Socket. If you have a choice (if your application supports both methods), use Unix Domain Socket as this is both more secure and more efficient. […]
Apr 08, 2020 |
MySQL, Percona Software, ProxySQL
This article describes how to install ProxySQL from the Percona Software Repositories. Percona Software Repositories contain a ProxySQL version that has passed rigorous Percona tests and is known to be compatible with other Percona Software. We recommend using those builds whenever you’re running ProxySQL with Percona Server for MySQL, Percona XtraDB Cluster, MySQL, or MariaDB. […]
Apr 07, 2020 |
Database Trends, Insight for DBAs, MySQL
This is a three-part blog series that focuses on dealing with an unexpected high traffic event as it is happening. Part one can be found here, and part two can be found here. 13. Configure MySQL Server Properly Complexity:Medium Potential Impact: High A poorly configured MySQL Server can cause severe issues, especially under high load […]
Apr 06, 2020 |
Database Trends, Insight for DBAs, MySQL
This is a three-part blog series that focuses on dealing with an unexpected high traffic event as it is happening. Part one can be found here and part three can be found here. 7. Get More Memory Complexity: Low Potential Impact: High If your data does not fit into memory well, your MySQL performance is […]
Apr 03, 2020 |
Database Trends, Insight for DBAs, MySQL
This is a three-part blog series. Part two is located here, and part three can be found here. There was no reason to plan for it, but the load on your system increased 100%, 300%, 500%, and your MySQL database has to support it. This is a reality many online systems have to deal with […]
Mar 30, 2020 |
Monitoring, MySQL, Percona Software
In my Webinar on Using Percona Monitoring and Management (PMM) for MySQL Troubleshooting, I showed how to use direct queries to ClickHouse for advanced query analysis tasks. In the followup Webinar Q&A, I promised to describe it in more detail and share some queries, so here it goes. PMM uses ClickHouse to store query performance […]
Mar 25, 2020 |
Monitoring, MySQL, Percona Software
Last week I did a webinar on MySQL Troubleshooting and Performance Optimization with Percona Monitoring And Management v2 (PMM2). There was a tremendous amount of interest and many more questions than I could answer, so I’m answering them in this blog post instead. Q: What are the red and white dots on the last column […]
Mar 04, 2020 |
Insight for DBAs, MySQL
If you’re a MySQL user trying ClickHouse, one thing which is likely to surprise – and annoy you – is the handling of Double Quotes. In MySQL, you can use both double quotes and single quotes to quote strings, and as an example, these two queries are equivalent:
|
mysql> select * from performance_schema.global_variables where variable_name='max_connections'; +-----------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +-----------------+----------------+ | max_connections | 151 | +-----------------+----------------+ 1 row in set (0.01 sec) mysql> select * from performance_schema.global_variables where variable_name="max_connections"; +-----------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +-----------------+----------------+ | max_connections | 151 | +-----------------+----------------+ 1 row in set (0.00 sec) |
This means that many of us […]
Feb 28, 2020 |
Monitoring, MySQL, Percona Software
There are a lot of things I love about Prometheus; its data model is fantastic for monitoring applications and PromQL language is often more expressive than SQL for data retrieval needs you have in the observability space. One thing, though, I hate about Prometheus with a deep passion is the behavior of its rate() and […]