Planet for the MySQL Community

A blog aggregator for the MySQL Community/Ecosystem

This website is in beta. A description of what it tries to achieve is in the Planet MySQL Community - Requirements RFC.

And a clarification about the MySQL Community/Ecosystem: it is not limited the users of the MySQL Database. In the current context, it also includes people interested in MySQL Variants including MariaDB Server, Percona Server, Galera, Amazon RDS and Aurora, Google Cloud SQL for MySQL, and Azure and Alibaba flavor(s) of MySQL/MariaDB/Percona Servers.

Thursday, 21. January 2021

How to Benchmark Performance of Moodle (from SeveralNines Open Source Database Blog)

pMoodle, the world's most popular learning management system (LMS), is commonly being deployed in a rapidly growing and large scale environment. Fortunately, Moodle is built with availability and scalability in mind, with lots of tools, to help us out managing a large infrastructure. Large scale Moodle infrastructures can be set up on different types of machines, from bare metal to compartmentalize [...]

3, 2, 1… MySQL Backup is Fun! (from Continuent Blog)

p“We don’t take backups, we use replication instead.” If you happen to agree with this statement, I urge you to continue reading. But even if you think you have a good backup plan, I still urge you to continue reading. Taking backups is usually not one of the most exciting parts of the job, but it might be the part that saves your company from a catastrophe. So, let’s make a plan!/p Tags: MySQ [...]

Low Value in range_optimizer_max_mem_size Might Cause Full Table Scan (from Percona Database Performance Blog)

♦Although how range_optimizer_max_mem_size operates is explained in the official doc, it’s not a well-known variable and surely not a variable you need to modify under most circumstances. But from time to time we get some performance tickets related to this. What problem does this variable cause if it is not properly sized? Let’s find out […] [...]

Can we shrink InnoDB Buffer Pool? (from Vettabase)

pAn oversized InnoDB buffer pool will consume too many resources and can be slower than necessary. Let's see how to check if we can shrink it. Continue reading Can we shrink InnoDB Buffer Pool?→/p pThe post Can we shrink InnoDB Buffer Pool? appeared first on Vettabase./p [...]

MySQL Invisible Column: part II (from lefred's blog)

This article is the second part of the series related to MySQL Invisible Column started here. This post covers why Invisible Column is important for InnoDB Storage Engine. To start, let me explain briefly how InnoDB deals with Primary Key and why an good primary key is important. And finally, why having a Primary Key is also important. How does ... Read More [...]

Five Principles that Guide TiDB and PingCAP (Part I) (from TiDB and TiKV Blog)

PingCAP's CEO talks about the philosophy of TiDB's evolution and how PingCAP built TiDB in the past five years. [...]

Wednesday, 20. January 2021

Insert Benchmark: Postgres is still boring (from Small Datum)

pThis has results for the insert benchmark on a small server with a low-concurrency workload using Postgres in versions 11.10, 12.4 and 13.1 My previous posts are for the same workload with MyRocks and InnoDB. Boring is good news. It means I haven't found serious regressions./ppOverview/ppThe test is run with 1 client and 1 table. In this case, client means there is at [...]

Sysbench: MySQL vs Postgres for an IO-bound workload (from Small Datum)

pThis compares results for MySQL/InnoDB and Postgres via IO-bound sysbench using the data I shared for Postgres and MySQL. I previously shared a comparison for an in-memory workload with sysbench. My goal is to document how performance and efficiency have changed from MySQL 5.6 to 8.0 and from Postgres 11 to 13. I try to avoid benchmarketing but I am curious about how system software evol [...]

MySQL Shell AdminAPI – What’s new in 8.0.23? (from MySQL Server Blog)

pThe MySQL Development Team is happy to announce a new 8.0 Maintenance Release of MySQL Shell AdminAPI – 8.0.23!/p pIn addition to several bug fixes and minor changes, some significant enhancements regarding monitoring/troubleshooting and performance were included./p MySQL Shell AdminAPI Cluster diagnostics pChecking how a Cluster is running and, whenever the cluster is not 100% healthy, perform tr [...]

How to Setup Automatic Failover for the Moodle MySQL Database (from SeveralNines Open Source Database Blog)

pIn a previous blog, we had discussed how to migrate a standalone Moodle setup to scalable setup based on a clustered database.  The next step you will need to think about is the failover mechanism - what do you do if and when your database service goes down. /p pA failed database server is not unusual if you have MySQL Replication as your backend Moodle database, and if it happens, you will need [...]

Drain Kubernetes Nodes… Wisely (from Percona Database Performance Blog)

♦What is Node Draining? Anyone who ever worked with containers knows how ephemeral they are. In Kubernetes, not only can containers and pods be replaced, but the nodes as well. Nodes in Kubernetes are VMs, servers, and other entities with computational power where pods and containers run. Node draining is the mechanism that allows users […] [...]

Sysbench: IO-bound and InnoDB (from Small Datum)

pThis has results for IO-bound sysbench with InnoDB in MySQL 5.6, 5.7 and 8.0. The test is similar to what I used for in-memory sysbench except the table has 400M rows instead of 10M and the test table is much larger than memory. The goal is to understand how performance and efficiency change from MySQL 5.6 to 8.0. I also have posts for Postgres and MyRocks./ppSummary:/pp/pulliMySQL 8.0 o [...]

Sysbench: IO-bound and Postgres (from Small Datum)

pThis has results for IO-bound sysbench with Postsgres versions 11.10, 12.4 and 13.1. The test is similar to what I used for in-memory sysbench except the table has 400M rows instead of 10M and the test table is much larger than memory. The goal is to understand how performance and efficiency change over time. I also have posts for InnoDB and MyRocks./ppSummary:/pp/pulliMany tests get bet [...]

Sysbench: IO-bound and MyRocks (from Small Datum)

pThis has results for IO-bound sysbench with MyRocks in FB MySQL 5.6.35 and 8.0.17. The test is similar to what I used for in-memory sysbench except the table has 400M rows instead of 10M and the test table is much larger than memory. The goal is to understand how performance and efficiency change from MySQL 5.6 to 8.0. I also have posts for InnoDB and Postgres./ppSummary:/pp/pulliWhile it varies, [...]

Keeping Open Source Open, or, Why Open is Better (from Percona Database Performance Blog)

♦Last week Elastic announced that they were “Doubling Down” on open source by changing their licensing to a non-open license – MongoDB’s Server Side Public License, or SSPL.  Let me clarify in my opinion this is not doubling down – unless, as our good friend @gabidavila highlighted, that maybe the thinking was a double negative […] [...]

MySQL 8.0.23 Is Available: Highlighting Some Important Points (from Percona Database Performance Blog)

♦As many of you have seen already, MySQL 8.0.23 is available for download (release notes). Today our dear LeFred thanked all the numerous contributors to bug fixes.  About this: let me mention our two people involved in bug fixing, Venkatesh Prasad Venugopal and Kamil Hołubicki. Great work guys! On my side, I have reviewed the […] [...]

MySQL Invisible Column – part I (from lefred's blog)

With the new MySQL 8.0.23, something very interesting has been released: Invisible Column. This is the first post dedicated to this new feature, I expect to write a series of 3. This one is the introduction. Prior to MySQL 8.0.23, all columns of a table were always visible (if you had the privilege to see it). Now, an invisible column ... Read More [...]

PHP portfolio piece – Analytics data. (from Digital Owl's Prose)

pI recently published a blog post about a portfolio project I am developing using the LAMP stack, Bootstrap 4, jQuery, and the MVC (Model-View-Controller) design pattern in core PHP. In this post, I will introduce an additional feature I integrated into the existing project. Self-Promotion: If you enjoy the content written here, by all means, […]/p pThe post PHP portfolio piece – Analyt [...]

PgPool – II Installation & Configuration – (Part-I) (from Mydbops Blog)

PGPool-II is an open-source proxy software that can be used for the PostgreSQL servers(ProxySQL for MySQL) environment. It lies between the application server/PostgreSQL client and the PostgreSQL database servers and can provide much-needed features like Load Balancing, Query Cache, Connection Pooling, and Watchdog. Each feature requires a detailed explanation with supporting examples. So, in this [...]

Announcing the TiDB Incubator Program (from TiDB and TiKV Blog)

Today, we are excited to introduce the TiDB Incubator Program, a program designed to ensure that new projects in the TiDB ecosystem can obtain resources and help from the community towards their desired maturity level. [...]

Tuesday, 19. January 2021

How to Backup Your Moodle MySQL Database (from SeveralNines Open Source Database Blog)

pData is an essential part of running a Moodle environment. Should the IT operations team lose data accidentally, then it could lead to a huge loss. So, to protect valuable information, sysadmins need to back up their Moodle database./p pBackups are one of the most important things to take care of while managing a database. In this blog we are going to look into how to backup your Moodle database [...]

Observability Enhancements in ProxySQL 2.1 with Prometheus & Grafana (from ProxySQL Blog)

pHow can ProxySQL be monitored using Grafana and Prometheus using the all new Prometheus exporter introduced in ProxySQL v2.1+?As you may already know, ProxySQL v2.1 includes a built in Prometheus exporter! Meaning what exactly? You can monitor ProxySQL directly without deploying or maintaining any additional Prometheus exporters. This greatly simplifies deployment as well as management [...]/p pTh [...]

The MySQL Clone Wars: Plugin vs. Percona XtraBackup (from Percona Database Performance Blog)

♦Large replication topologies are quite common nowadays, and this kind of architecture often requires a quick method to rebuild a replica from another server. The Clone Plugin, available since MySQL 8.0.17, is a great feature that allows cloning databases out of the box. It is easy to rebuild a replica or to add new nodes […] [...]

Sysbench: in-memory scans for MyRocks, InnoDB and Postgres (from Small Datum)

pI added a test that does a full scan of the test table(s) to the sequence of tests I use with sysbench and repeated the full sequence with an in-memory workload, but I only share the results for scan here. /ppSummary/pp/pulliFor in-memory scans, InnoDB was fastest, then Postgres and MyRocks was the slowest. MyRocks was also reading from storage (SSD) on this test for a table that should fit i [...]

Diagnosing Orchestrator Crashes Due to Time Drift Events (from Pythian Blog - MySQL Track)

We were recently paged by a client because one node of their Orchestrator setup had crashed. The Orchestrator cluster was set up using the Orchestrator/raft consensus cluster and using a SQLite backend. When looking in the log files this is... [...]

Announcing MySQL Cluster 8.0.23, 7.6.17, 7.5.21, 7.4.31, and 7.3.32 (from MySQL Release Engineering)

We are pleased to announce the release of MySQL Cluster 8.0.23, the latest GA, along with 7.6.17, 7.5.21, 7.4.31, and 7.3.32. MySQL Cluster is the distributed, shared-nothing variant of MySQL. This storage engine provides: In-Memory storage – Real-time performance (with optional checkpointing to disk)Transparent Auto-Sharding – Read & write scalabilityActive-Active/Multi-Master geographic repli [...]

MySQL 8.0.23: thank you for the contributions (from lefred's blog)

The expected version 8.0.23 of MySQL has been released yesterday \o/ For new features and resolved bugs, I recommend Geir‘s traditional blog post announcing the release. Of course, as usual, this release contains contributions from our great Community and let me thanks all the contributors on behalf of the MySQL Team. MySQL 8.0.23 includes contributions from Daniel Black, Vilnis Termanis, ... [...]

Announcing MySQL Server 8.0.23 and 5.7.33 (from MySQL Release Engineering)

MySQL Server 8.0.22 and 5.7.33, new versions of the popular Open Source Database Management System, have been released. These releases are recommended for use on production systems. For an overview of what’s new, please see dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html For information on installing the release on new servers, please see the [...]

Support for Date-Time Types in Connector/J 8.0 (from InsideMySQL.com)

Connector/J version 8.0.23 came out with several bug fixes related to date-time types support. They provide more flexibility for configuring time zone handling and allow migration from Connector/J 5.1 with much less effort. Problems with migration from Connector/J 5.1 to … Continue reading → [...]

Monday, 18. January 2021

Sysbench: Postgres vs MySQL and the impact of regressions (from Small Datum)

pI compare Postgres and MySQL using an in-memory and low-concurrency workload via sysbench. This reuses the data from my previous posts (here and here).brbrFor this workload Postgres used to be slower than MySQL and now it is faster. I hesitate to do direct comparisons because I like both DBMS and don't want to start pointless debates but I care about efficiency and hope that more is done to preven [...]

Deprecating End-of-life runtime engines on Connector/Node.js (from InsideMySQL.com)

Starting with the 8.0.23 release, Connector/Node.js will be deprecating support for End-of-life Node.js engine versions. Support for these versions will eventually be removed on subsequent releases which will focus on compatibility with the available LTS versions at the date of each release. Continue reading → [...]

MySQL Connector/ODBC 8.0.23 has been released (from InsideMySQL.com)

Dear MySQL users, MySQL Connector/ODBC 8.0.23 is a new version in the MySQL Connector/ODBC8.0 series, the ODBC driver for the MySQL Server. The available downloads include both a Unicode driver and an ANSI driverbased on the same modern codebase. Please … Continue reading → [...]

MySQL Connector/Python 8.0.23 has been released (from InsideMySQL.com)

Dear MySQL users, MySQL Connector/Python 8.0.23 is the latest GA release version of the MySQL Connector Python 8.0 series. The X DevAPI enables application developers to write code that combines the strengths of the relational and document models using a … Continue reading → [...]

MySQL Connector/Node.js 8.0.23 has been released (from InsideMySQL.com)

Dear MySQL users, MySQL Connector/Node.js is a new Node.js driver for use with the X DevAPI. This release, v8.0.23, is a maintenance release of the MySQL Connector/Node.js 8.0 series. The X DevAPI enables application developers to write code that combines … Continue reading → [...]

MySQL Connector/NET 8.0.23 has been released (from InsideMySQL.com)

Dear MySQL users, MySQL Connector/NET 8.0.23 is the latest General Availability release of the MySQL Connector/NET 8.0 series. This version supports .NET 5.0 and the X DevAPI, which enables application developers to write code that combines the strengths of the … Continue reading → [...]

MySQL Connector/C++ 8.0.23 has been released (from InsideMySQL.com)

Dear MySQL users, MySQL Connector/C++ 8.0.23 is a new release version of the MySQL Connector/C++ 8.0 series. Connector/C++ 8.0 can be used to access MySQL implementing Document Store or in a traditional way, using SQL queries. It allows writing both … Continue reading → [...]

FromDual Backup and Recovery Manager for MariaDB and MySQL 2.2.3 has been released (from Shinguz's Blog)

pFromDual has the pleasure to announce the release of the new version 2.2.3 of its popular Backup and Recovery Manager for MariaDB and MySQL (codebrman/code)./p pThe new FromDual Backup and Recovery Manager can be downloaded from here. The FromDual Repositories were updated. How to install and use the Backup and Recovery Manager is described in FromDual Backup and Recovery Manager (brman) installa [...]

MySQL Connector/J 8.0.23 has been released (from InsideMySQL.com)

Dear MySQL users, MySQL Connector/J 8.0.23 is the latest General Availability release of the MySQL Connector/J 8.0 series. It is suitable for use with MySQL Server versions 8.0, 5.7, and 5.6. It supports the Java Database Connectivity (JDBC) 4.2 API, … Continue reading → [...]

The MySQL 8.0.23 Maintenance Release is Generally Available (from MySQL Server Blog)

pThe MySQL Development team is very happy to announce that MySQL 8.0.23 is now available for download at dev.mysql.com. In addition to bug fixes there are a few new features added in this release.  Please download 8.0.23 from dev.mysql.com or from the MySQL  Yum,  APT, or SUSE repositories.…/p [...]

MySQL Shell 8.0.23 for MySQL Server 8.0 and 5.7 has been released (from InsideMySQL.com)

Dear MySQL users, MySQL Shell 8.0.23 is a maintenance release of MySQL Shell 8.0 Series (a component of the MySQL Server). The MySQL Shell is provided under Oracle’s dual-license. MySQL Shell 8.0 is highly recommended for use with MySQL Server … Continue reading → [...]

Sunday, 17. January 2021

Insert Benchmark: InnoDB (from Small Datum)

pThis has results for the insert benchmark on a small server with a low-concurrency workload using InnoDB in MySQL 5.6.49, 5.7.31 and 8.0.22. My previous posts are for the same workload with MyRocks and Postgres./ppOverview/ppThe test is run with 1 client and 1 table. In this case, client means there is at most 1 connection for writes and 1 for reads. For some tests the wri [...]

Insert benchmark: MyRocks (from Small Datum)

pThis has results for the insert benchmark on a small server with a low-concurrency workload using MyRocks in MySQL 5.6.35 and 8.0.17. I also have posts for InnoDB and Postgres./ppOverview/ppThe test is run with 1 client and 1 table. In this case, client means there is at most 1 connection for writes and 1 for reads. For some tests the write and read connections do things concurrently. My test serv [...]

Saturday, 16. January 2021

Sysbench: MyRocks in MySQL 5.6 vs 8.0 (from Small Datum)

pI revived my sysbench helper scripts and have started to get results for MySQL (InnoDB, MyRocks) and Postgres. The results here are from all_small.sh which uses a few Lua files that are in my sysbench fork but have yet to be contributed. Tests were run on my home NUC servers for in-memory and IO-bound workloads. The results here are limited to the in-memory workloads.brbrDisclaimer -- the tests he [...]

Linux /proc Filesystem for MySQL DBAs - Part IV, Creating Off-CPU Flame Graphs (from MySQL Entomologist (former?) Blog)

p My upcoming FOSDEM 2021 MySQL Devroom talk based on this series of blog posts is already prepared and recorded. But in the process I noted that some more details should be shared than one can cover in a 20 minutes talk. So I decided to continue the series, and today I am going to show what one can do with kernel stack samples collected from /proc, for example, with the psn tool we discussed [...]

Working With MyISAM in MySQL (from SeveralNines Open Source Database Blog)

pMyISAM is one of the most popular storage engines in MySQL. MyISAM frequently is the second choice after InnoDB - in this blog post we will try to find out how best to work with this engine./p What is MyISAM? pMyISAM is one of MySQL’s storage engines. MyISAM is based on ISAM (Indexed Sequential Access Method), an indexing algorithm developed by IBM that allows retrieving information from large s [...]

Friday, 15. January 2021

MySQL 8.0.22: SHOW PROCESSLIST Version 2 – Now Available From PERFORMANCE_SCHEMA (from Percona Database Performance Blog)

♦The “SHOW PROCESSLIST” command is very famous and very useful for MySQL DBAs. It will help you to understand the ongoing thread activities and their current states. By default, the “show processlist” output details will be collected from the thread manager, and it needs the global mutex. From MySQL 8.0.22, we have an alternative way […] [...]

Thursday, 14. January 2021

MySQL Select and Sort Status Variables (from Hack MySQL)

MySQL Select and Sort Status Variables This page is a reboot of the original written 15 years ago in 2005. Back then, I must have been using MySQL 4.1 or 5.0. Today, I am using MySQL 8.0.22. A lot changed in MySQL from 4.1 to 8.0, but it still has the same Select_% and Sort_% status variables which are equally important today in 2021. Let’s examine them in greater detail and with better examp [...]

Tips for Monitoring MySQL for Moodle (from SeveralNines Open Source Database Blog)

pDatabase monitoring is a critical part of any application’s maintenance. Finding database issues on time can help the application remain healthy and accessible. Without monitoring in place, database outages can be prolonged, resulting in increased downtime for users. In this blog we are going to explain what you need to monitor in a Moodle Database, and how you can do it using ClusterControl./p C [...]

Galera Cluster for MySQL 5.6.50, 5.7.32, and 8.0.22 released (from Galera Blog)

Codership is pleased to announce a new Generally Available (GA) release of the multi-master Galera Cluster for MySQL 5.6, 5.7 and 8.0, consisting of MySQL-wsrep 5.6.50 (release notes, download), 5.7.32 (release notes, download) and 8.0.22 (release notes, download) with Galera replication library 3.32 (release notes, download) implementing wsrep API version 25, and Galera replication library [… [...]

Wednesday, 13. January 2021

How to Deploy the Open edX MySQL Database for High Availability (from SeveralNines Open Source Database Blog)

pOpen edX is a platform for online educational activities. Given the situation the world is in, all such platforms are encountering higher loads and their importance has significantly increased. Those are not just the “helper” platforms but they often become the main way in which educational activities are performed. This leads to the higher requirements regarding the load they can handle or the av [...]

T is for Tuning amplification (from Small Datum)

pFirst there was the RUM Conjecture - an index structure can't be optimal for all of read, write & space efficiency. It became the CRUM Conjecture when I added a C for cache amplification because some algorithms require more data in cache per indexed row if they are to be performant and DRAM is costly (see key-value separation).brbrCan I add another letter to it and rename it the CRUMT conjectu [...]

Percona 2020 Recap: Great Content and Software Releases (from Percona Database Performance Blog)

♦The Percona team provided the community with some excellent content and several new releases in 2020. I wanted to highlight some of your favorites (based on popularity) if you missed them. First up is our most-read blog from last year, which ironically was published before 2020. Ananias Tsalouchidis’s blog on when you should use Aurora […] [...]

Tuesday, 12. January 2021

MySQL Backup and Recovery Best Practices (from Percona Database Performance Blog)

♦In this blog, we will review all the backup and restore strategies for MySQL, the cornerstones of any application. There are a few options, depending on your topology, MySQL versions, etc. And based on that, there are some questions we need to ask ourselves to make sure we make the right choices. How many backups […] [...]

How to Migrate Standalone Moodle to a Clustered Database Scalable Setup (from SeveralNines Open Source Database Blog)

pOnline Learning nowadays is quickly gaining traction since the COVID-19 pandemic happened. Most of the educational institutions are having to set up platforms for online learning, and pretty much all students are having to access the platform for learning and interacting with the teachers. Moodle is one of the open source learning management systems for online learning, /p pHaving high availabili [...]

FOSDEM 2021 MySQL Devroom Schedule (from FOSDEM MySQL & Friends Devroom)

The FOSDEM 2021 MySQL Devroom Schedule is now online. Thank you again to all who submitted a talk and thank you the to Committee for having build such agenda. It seems that once again, MySQL Operations and Architecture are very popular. As you probably know already, this event will be totally online this year. I […] [...]

Webinar January 26: Using Percona Monitoring and Management to Identify and Troubleshoot Problematic MySQL Queries (from Percona Database Performance Blog)

♦Join us as Michael Coburn, Percona Product Manager, discusses two methods to identify and troubleshoot problematic MySQL queries using the RED Method and Percona Monitoring and Management (PMM) Query Analytics. He will also highlight specific Dashboards in PMM that visualize the rate, errors, and duration of MySQL events that may be impacting the stability and […] [...]

MySQL macOS Docker (from MacLochlainns Weblog)

While you can download MySQL as a DMG package, a number of users would prefer to install it as a Docker instance. You won’t find the macOS downloads on the same web site as other downloads. You can use the following macOS download site. After installing Docker on your macOS, you can pull a copy […] [...]

Monday, 11. January 2021

MySQL Group Replication – How to Elect the New Primary Node (from Percona Database Performance Blog)

♦In this blog, I am going to explain the different ways of electing the PRIMARY node in MySQL group replication. Before MySQL 8.0.2, primary election was based on the member’s UUID, with the lowest UUID elected as the new primary in the event of a failover. From MySQL 8.0.2: We can select the node to […] [...]

Sysbench: in-memory Postgres, Postgres is boring (from Small Datum)

pWhile writing and rewriting perf reports for MyRocks and InnoDB I have also been running sysbench tests with Postgres. I am happy to claim that Postgres is boring as there are no CPU regressions from version 11 to 13./ppI ran tests for Postgres versions 11.10, 12.4 and 13.1 on a small server using sysbench and an in-memory, low-concurrency workload. Workloads with more IO and concurrency are great [...]

MariaDB Push Replication (from Shinguz's Blog)

Table of Contents ulliHow to make MariaDB Pull Replication as secure as possible/li liMariaDB Push Replication/li liPushing data with the FederatedX Storage Engine and Triggers/li liTraffic mirroring with MariaDB MaxScale or ProxySQL/li /ulbrHow to make MariaDB Pull Replication as secure as possible pA normal MariaDB Replication is a Pull Replication. This means that a Slave connects to its [...]

Full Read Consistency Within Percona Kubernetes Operator for Percona XtraDB Cluster (from Percona Database Performance Blog)

♦The aim of Percona Kubernetes Operator for Percona XtraDB Cluster is to be a special type of controller introduced to simplify complex deployments. The Operator extends the Kubernetes API with custom resources. The Operator solution is using Percona XtraDB Cluster (PXC) behind the hood to provide a highly available, resilient, and scalable MySQL service in […] [...]

Percona Kubernetes Operator for Percona XtraDB Cluster: HAProxy or ProxySQL? (from Percona Database Performance Blog)

♦Percona Kubernetes Operator for Percona XtraDB Cluster comes with two different proxies, HAProxy and ProxySQL. While the initial version was based on ProxySQL, in time, Percona opted to set HAProxy as the default Proxy for the operator, without removing ProxySQL.  While one of the main points was to guarantee users to have a 1:1 compatibility […] [...]

Sunday, 10. January 2021

Sysbench: in-memory InnoDB, MySQL 5.6, 5.7 & 8.0, take 3 (from Small Datum)

pThis is my third attempt to report in-memory sysbench results for InnoDB in MySQL 5.6, 5.7 and 8.0. In my second attempt I changed my.cnf so that both versions used the same value for eq_range_index_dive_limit. In this attempt I get InnoDB to write back dirty pages (see here) after the write-heavy tests are run (before the read-only tests are repeated). The main reason for the change was [...]

Saturday, 09. January 2021

Sysbench: in-memory InnoDB, MySQL 5.6 & 8.0, take 2 (from Small Datum)

pI discovered one of the reasons for QPS regressions with in-memory Sysbench and MySQL 5.7+ that I explained in a previous post. The default value for eq_range_index_dive_limit was increased from 10 in 5.6 to 200 in 5.7. This option determines the amount of work (index searches) the optimizer might do to estimate predicate selectivity and going from 10 to 200 means up to ~20X more index searches fo [...]

Sysbench: in-memory MyRocks, MySQL 5.6 & 8.0, take 3 (from Small Datum)

pThis is my third attempt to report in-memory sysbench results for MyRocks in MySQL 5.6.35 and 8.0.17. In my second attempt I changed my.cnf so that both versions used the same value for eq_range_index_dive_limit. In this attempt I make sure the LSM tree shape is in a better shape during the read-only tests. Both attempts resolve some of the regressions between 5.6 and 8.0 reported in my first atte [...]

MySQL sakila Database (from MacLochlainns Weblog)

While I thought my instructions were clear, it appears there should have been more in my examples for using the MySQL MSI. A key thing that happened is that students opted not to install: Samples and Examples 8.0.22 Unfortunately, they may not have read the Preface of Alan Beaulieu’s Learning SQL, 3rd Edition where he […] [...]

Understanding Character Sets and Collations in MySQL (from SeveralNines Open Source Database Blog)

pIf you have ever worked with MySQL, you inevitably came across character sets and collations. In this blog post, we will try to give you a more in-depth look at what those two are and how you should use them./p What Are Character Sets and Collations? pSimply put, character sets in MySQL are sets of symbols and encodings - collations are sets of rules for comparing characters in a character set. [...]

Friday, 08. January 2021

Sysbench: in-memory MyRocks, MySQL 5.6 & 8.0, take 2 (from Small Datum)

pAs I shared in my previous post, the default value for eq_range_index_dive_limit increased in MySQL 5.7 and that hurts several of the benchmark queries that I use. So I improved the my.cnf, repeated the tests and now get to write another perf report. This has results for in-memory sysbench with MyRocks from MySQL 5.6.35 and 8.0.17./ppThe summary:/pp/pulliTests in Read-only before write-heavy [...]

Boosting Performance by Using Read Write Splitting of Database Traffic with Moodle 3.9 (from SeveralNines Open Source Database Blog)

pMoodle is a very well known Learning Management System which is intended to help educational organizations organize their online learning activities. As you can imagine, given the online shift in 2020 caused by the COVID-19, such systems became very popular and the load those systems have to handle has increased significantly. Many administrators are wondering how to improve the performance of the [...]

Linux /proc Filesystem for MySQL DBAs - Part III, 0x.tools by Tanel Poder (from MySQL Entomologist (former?) Blog)

pIn this third post of my "Linux /proc Filesystem for MySQL DBAs" series (see also Part I and Part II for the context and details) I am going to present a useful set of programs to access, summarize and record /proc details created and recently shared by famous Tanel Poder, 0x.tools. I'll try to build them and apply to Percona Server 5.7.32-35 running on Ubuntu 16.04 netbook and fighting with some [...]

Streaming MySQL Backups with Percona XtraBackup – Another Alternative (from Percona Database Performance Blog)

♦Today we are going to present you with another way to make a database copy between servers using our Percona XtraBackup utility.  What is the difference with many others existing on the web?  Not many, but they are interesting in terms of performance and availability. We will combine the xbstream utility with the power of […] [...]

Updated MySQL OSMetrics Plugins (from Percona Database Performance Blog)

♦It has been some time since I have posted updates to my plugins.  After the initial version, I decided to split the plugins into categories of metrics.  This will allow users to choose whether they want to install all of the plugins or only select ones they care about. Since the installation process is unfamiliar […] [...]

How to Simulate I/O Faults at Runtime (from TiDB and TiKV Blog)

This post dives deep into how we implement the IOChaos experiment without using a sidecar. [...]

Thursday, 07. January 2021

Linux /proc Filesystem for MySQL DBAs - Part II, Threads of the mysqld Process (from MySQL Entomologist (former?) Blog)

pIt's common knowledge that MySQL server (mysqld process) is multi-threaded. Let me quote:/pblockquotep"The MySQL Server (mysqld) executes as a single OS process, with multiple threads executing concurrent activities. MySQL does not have its own thread implementation, but relies on the thread implementation of the underlying OS." br/p/blockquotepIn the previous post we've seen that on Linux the / [...]

TAM Enterprise Experiences – Data Encryption (from Percona Database Performance Blog)

♦In previous TAM Enterprise Experiences posts, we have outlined typical aspects of utilizing MySQL in an Enterprise environment. One thing we have not yet covered is the topic of database encryption, both from the standpoint of business requirements as well as some of the more technical aspects of encryption. In this post, we will cover: […] [...]

Unblock Your Applications with R2DBC, Spring Data and MariaDB (from MariaDB Corporation Blog)

The MariaDB Connector/R2DBC is now GA. Use the Spring framework to set up a Maven-based Java application and see how easy it is to create fully-reactive applications with MariaDB. [...]

Mydbops MyWebinar: High availability with InnoDB Cluster (from Mydbops Blog)

Celebrating The new year is not about a change of just the time element, It is about the discovering of a new you and elevate you by continuous learning & upgrading that recognizes WAAOC!! We Are All One Community!! Mydbops is geared up to give back to our community of opensource database, AGAIN!! MyWebinar is … Continue reading Mydbops MyWebinar: High availability with InnoDB Cluste [...]

GitHub Discussions: Bringing the Open Source Community Closer Together and All in GitHub (from TiDB and TiKV Blog)

This post introduces how Discussions, a beta feature GitHub recently launched, helps open source projects build their own communities or bring the communities nearer to the source code. [...]

Wednesday, 06. January 2021

Generating Flexible Random data in MySQL (from Mydbops Blog)

I was about to benchmark the various compression methods in MySQL ( Via Engines ). But i liked to simulate my own data set similar to a production work load. Well searched for a tool which should be flexible to enough make customised table structure and more. Mysql_random_data_load is a tool from Percona labs used … Continue reading Generating Flexible Random data in MySQL → [...]

FOSDEM21 MariaDB devroom talks (from MariaDB Foundation Blog)

pThe first dedicated MariaDB devroom at FOSDEM is being held on Saturday 6 February. In previous years, the joint MySQL, MariaDB and MariaDB and Friends devroom has been overwhelmed with submissions. […]/p pThe post FOSDEM21 MariaDB devroom talks appeared first on MariaDB.org./p [...]

Linux /proc Filesystem for MySQL DBAs - Part I, Basics (from MySQL Entomologist (former?) Blog)

pHappy New Year 2021, dear readers of my blog!/p♦We used to have real winters at this time of the year. Not any more...brpAmong other good things that happened on December 31, 2020, I was informed that my talk "Linux /proc filesystem for MySQL DBAs" was accepted for FOSDEM 2021 MySQL devroom. So, it's time to get back to blogging that I abandoned for a while in favor of this YouTube channel, and sh [...]

Google Cloud Platform: MySQL at Scale with Reliable HA Webinar Q&A (from Percona Database Performance Blog)

♦Earlier in November, we had a chance to present the “Google Cloud Platform: MySQL at Scale with Reliable HA.” We discussed different approaches to hosting MySQL in Google Cloud Platform with the available options’ pros and cons. This webinar was recorded and can be viewed here at any time. We had several great questions, which […] [...]

PHP CRUD Application – Portfolio Piece (from Digital Owl's Prose)

pI am super pleased to share that I have completed and uploaded my first (that I can share at least) personal portfolio piece written in PHP to a subdomain on my personal hosting server located at walk.openlamp.tech. Over the better part of the last year, I have developed a custom reporting dashboard written in PHP […]/p pThe post PHP CRUD Application – Portfolio Piece appeared first on [...]

Is InnoDB Buffer Pool big enough? (from Vettabase)

pInnoDB buffer pool is the most important memory area to allocate. It contains the most frequently read data and index entries from InnoDB tables. Let's see how to check if it is big enough. Continue reading Is InnoDB Buffer Pool big enough?→/p pThe post Is InnoDB Buffer Pool big enough? appeared first on Vettabase./p [...]

Tuesday, 05. January 2021

MySQL 5.6 End of Life in ONE MONTH!!! (from PHP With MySQL)

p For the past year or so I have been reminding folks that MySQL 5.6 reaches End of Life Status in ONE MONTH!!  No more updates or security fixes!  Nostalgia is a fine things and I like antiques but not for my database!/ppSo if you are on 5.6 please upgrade to 5.7 -- dev.mysql.com/doc/refman/5.7/en/upgrading.html and consider going to 8.0 - dev.mysql.com/doc/refman/8.0/en/u [...]

Sysbench: IO-bound MyRocks in 5.6 vs 8.0 (from Small Datum)

pThis post has results for an IO-bound workload. The previous post has results for an in-memory workload. /ppSummary:/pulliMany of the regressions are explained by new CPU overhead. But there is also variance that is likely caused by stalls from RocksDB and my scripts don't do a good job of showing that. /liliIn most cases, MyRocks in 8.0.17 gets between 80% and 100% of the throughput vs [...]

Sysbench: in-memory InnoDB in MySQL 5.6, 5.7 and 8.0 (from Small Datum)

pThis post has results for InnoDB in MySQL 5.6, 5.7 and 8.0 using an in-memory & low-concurrency workload via sysbench. The setup is the same as I described for MyRocks. The goal is to understand where performance changes across releases and the in-memory workloads make it easier to spot CPU overhead.brbrI will repeat a disclaimer from my previous post, these results are from microbenchmarks. T [...]

Sysbench: IO-bound InnoDB in MySQL 5.6, 5.7 and 8.0 (from Small Datum)

pThis post has results for InnoDB in MySQL 5.6, 5.7 and 8.0 using an IO-bound & low-concurrency workload via sysbench. The setup is the same as I described for MyRocks and I wrote about in-memory sysbench + InnoDB in a previous post. The goal is to understand where performance changes across releases./ppI will repeat a disclaimer from my previous post, these results are from microbenc [...]

TAM Enterprise Experiences – Troubleshooting Methodology (from Percona Database Performance Blog)

♦One of the great things about being a Technical Account Manager (TAM, for short) at Percona is having the opportunity to see a wide variety of issues across many clients, and having the space to identify the common threads that seem to bind many of these issues. While the challenges vary as widely as the […] [...]

VSZ behaviour with MariaDB MEMORY tables (from Shinguz's Blog)

pWe recently had the situation that a customer complained about the Oom killer terminating the MariaDB database instance from time to time. The MariaDB database configuration was sized quit OK (about 50% of RAM was used for the database) but they did not have swap configured./p pWhen we checked the memory for the specific codemysqld/code process we found that codeVSZ/code was about 80 Gibyte (on a [...]

Monday, 04. January 2021

Percona Monthly Bug Report: December 2020 (from Percona Database Performance Blog)

♦Here at Percona, we operate on the premise that full-transparency makes a product better. We strive to build the best open-source database products, but also to help you manage any issues that arise in any of the databases that we support. And, in true open-source form, report back on any issues or bugs you might […] [...]

Saturday, 02. January 2021

Percona Operator for MySQL (HAProxy or ProxySQL?) (from TusaCentral - MySQL Blogs)

Overview pPercona Operator for MySQL (POM) comes with two different proxies, HAProxy and ProxySQL. While the initial version was based on ProxySQL, in time Percona opted to set HAProxy as the default Proxy for the operator, this without removing ProxySQL. /p pWhile one of the main points was to guarantee users to have a 1:1 compatibility with vanilla MySQL in the way the operator allows connec [...]

Full read consistency within Percona Operator for MySQL (from TusaCentral - MySQL Blogs)

Overview  pPercona operator for MySQL (POM) :(www.percona.com/doc/kubernetes-operator-for-pxc/index.html) it’s aim is a special type of controller introduced to simplify complex deployments. The Operator extends the Kubernetes API with custom resources./p pThe Percona Operator for MySQL solution is using Percona Xtradb Cluster behind the hood to provide a highly available, resilient and s [...]

I learned to read at 20 years old (from Jeremy Cole)

[Note: I shared this post on Twitter and there has been a fair bit of discussion about it there. Please feel free to re-share if you find it interesting or you learned something, and I’m happy to answer questions or read your comments there, or in the blog post comments here, as well. Thanks for […] [...]

Friday, 01. January 2021

Support for Percona XtraDB Cluster in ProxySQL (Part Two) (from TusaCentral - MySQL Blogs)

pHow scheduler and script stand in supporting failover (Percona and Marco example) /p pIn part one of this series,  I had illustrated how simple scenarios may fail or have problems when using Galera native support inside ProxySQL. In this post, I will repeat the same tests but using the scheduler option and the external script./p The Scheduler pFirst a brief explanation abo [...]

Support for Percona XtraDB Cluster in ProxySQL (Part One) (from TusaCentral - MySQL Blogs)

pIn recent times I have been designing several solutions focused on High Availability and Disaster Recovery. Some of them using Percona Server for MySQL with group replication, some using Percona XtraDB Cluster (PXC). What many of them had in common was the use of ProxySQL for the connection layer. This is because I consider the use of a layer 7 Proxy preferable, given the [...]

Thursday, 31. December 2020

Business As Unusual, Part II (from MariaDB Foundation Blog)

pOn the last day of the year, let me share a few thoughts in hindsight on a year that didn’t turn out as anyone expected. The outcome: Not everyone was as lucky as MariaDB Foundation. […]/p pThe post Business As Unusual, Part II appeared first on MariaDB.org./p [...]

Improving MySQL Performance with Advanced InnoDB Settings (from SeveralNines Open Source Database Blog)

pWe have discussed how to configure InnoDB for high performance a while ago, however, we have not yet discussed how we can improve MySQL performance while making use of advanced InnoDB settings. This blog post should provide a little more insight into this topic./p InnoDB Explained pBefore we actually dive deeper into InnoDB settings, we should probably understand the basics: InnoDB is a storage [...]

dim_STAT : v.9.0 CoreUpdate-20-12 (from DimitriK's (dim) Weblog)

pJust realized I did not post any notes about dim_STAT CoreUpdates during the last 3 years, so will try to fix it now with the following short summary ;-))/p pRead more... (2 min remaining to read)/p [...]

PingCAP 2020 Year in Review (from TiDB and TiKV Blog)

Thank you for a great 2020! [...]