Showing entries 1 to 10 of 21367
10 Older Entries »
Displaying posts with tag: MySQL (reset)
Beware of Unstable Query Digests in MySQL

If you’re using MySQL’s Performance Schema you may use “query digests” as IDs to identify specific query patterns in the events_statements_summary_by_digest Performance Schema Table.

You might assume these hashes are stable between different versions, so, for example, when upgrading from MySQL 5.7 to MySQL 8, you can compare the query response time and other execution details for the same hashes as part of your upgrade process and have confidence that queries run the same (or better) after the upgrade.   Unfortunately, you can’t.

For some reason, the hashing algorithm is different between MySQL 5.6,  MySQL 5.7, and MySQL 8 even for the most trivial queries:

MySQL 5.6

mysql> select digest,digest_text  from events_statements_summary_by_digest where digest_text='commit';
+----------------------------------+-------------+
| digest                           | digest_text | …
[Read more]
Fun with Bugs #92 - On MySQL Bug Reports I am Subscribed to, Part XXVI

I'd like to continue reviewing MySQL bug reports from Community users that I considered interesting and subscribed to. Unlike in the previous post in this series, I am not going to check test cases on any competitor product, but will use only recently released MySQL 5.7.29 and 8.0.19 for checks, if any. This time I'll concentrate on bugs reported in November 2019.

As usual, I mostly care about optimizer, InnoDB and replication related bugs. Here is the list:

  • Bug #97476 - "Range optimizer skips rows". This bug reported by
[Read more]
Group Replication in Percona Server for MySQL

Percona Server for MySQL 8.0.18 ships all functionality to run Group Replication and InnoDB Cluster setups, so I decided to evaluate how it works and how it compares with Percona XtraDB Cluster in some situations.

For this I planned to use three bare metal nodes, SSD drives, and a 10Gb network available for in-between nodes communication, but later I also added tests on three bare metal nodes with NVMe drives and 2x10Gb network cards.

To simplify deployment, I created simple ansible scripts.

Load Data

The first initial logical step is to load data into an empty cluster, so let’s do this with our sysbench-tpcc …

[Read more]
Disk of Yesteryear Compared to Today’s SSD Drives

In my last blog post I showed you how to get the entire Percona “Stack” up and running on a Raspberry Pi. This time around, I would like to show the impact on performance between using an SSD hard disk and a standard hard disk.

Disk performance is a key factor in Percona Server for MySQL (or any RDB platform) performance on a Raspberry Pi 4.

Test set up

Each test below was run three times per Hard Disk and I took the best of the three for comparison.

Hardware

  • Raspberry Pi 4+ with 4GB ram.
  • Disk 1: USB3 Western Digital My Passport Ultra, 1TB
  • Disk 2: USB3 KEXIN 240GB Portable External SSD Drive

Hardware stayed consistent …

[Read more]
Upgrading MySQL InnoDB Cluster Metadata

As on every release MySQL Shell 8.0.19 includes several bug fixes as well as new features. However, this release includes some significant changes:

  • Fixes for bugs in the schema definition:  Cascading keys in multi-primary mode.
  • Introduction of InnoDB ReplicaSet.

These changes required updates to the metadata schema definition, some of which incompatible with previous versions.…

Facebook Twitter LinkedIn

A Tale of UDFs with Character Sets

If you are reading this blog post, you likely already know the purpose of user-defined functions (UDF) in MySQL. If you need a quick refresher on UDF’s take a look at the MySQL reference manual.  You may have created your own UDFs as well.…

Facebook Twitter LinkedIn

Using Flame Graphs to Process Outputs From pt-pmp

In a previous post Profiling Software Using perf and Flame Graphs, we took a look at how to generate Flame Graphs from perf outputs. In this short follow-up, we will use Flame Graphs to process outputs from pt-pmp. Flame Graphs were not originally thought of for this purpose, but since pt-pmp outputs are similar to the folded samples (the result of using stackcollapse-perf.pl), we can take advantage of its functionality.

There are mainly two differences in the pt-pmp outputs:

  • The first column is the number of threads with that same backtrace, and
  • The function names are separated by a comma instead of a semicolon

Additionally, pt-pmp will print the date in the first line, so we’ll need to trim that part, too.

Lastly, before …

[Read more]
Setup and Deploy Vitess on Kubernetes (Minikube) for MySQL – Part III of III

In this blog post, we will continue to explore Vitess and test an example database provided in its repository. This is Part III of the previously discussed installation of Vitess on minikube environment, so please make sure to follow those steps to bring the cluster up to the following level.  

$ kubectl get pods,jobs
NAME                                                                READY     STATUS    RESTARTS   AGE
po/etcd-global-kbbcqlgvp9                                           1/1       Running   0          43m
po/etcd-zone1-lpc5zmdxxn                                            1/1       Running   0          43m
po/my-release-etcd-operator-etcd-backup-operator-6684dd6d8c-pr4n4   1/1       Running   0          1h
po/my-release-etcd-operator-etcd-operator-86d94989d6-w9lpx          1/1       Running …
[Read more]
A new, simple way to figure out why your recursive CTE is running away

In MySQL 8.0.1, we introduced support for recursive common table expressions (CTE). There are quite a few blog entries showcasing the feature, starting from this one, and there is also a complete documentation. Today, I would like to present a solution to a problem which nearly everybody meets when writing queries with recursive CTE’s: when infinite recursion happens, how to debug ?…

Facebook Twitter LinkedIn

InnoDB ReplicaSet in MySQL 8.0.19 ( configuration + Switchover the primary member )

At 13th January 2020, MySQL Community has released the very latest MySQL 8.x version ( 8.0.19 ). The MySQL 8.0.19 has released with the good amount of bug fixes and the cool features . InnoDB ReplicaSet is one of them and most interesting feature for me . In this blog I am going to explain about the configuration of the MySQL InnoDB ReplicaSet and how to do the switchover smoothly with InnoDB ReplicaSet .

What is InnoDB ReplicaSet ?

from MySQL document,

The AdminAPI includes support for InnoDB ReplicaSet, that enables you to administer a set of MySQL instances running asynchronous GTID-based replication in a similar way to InnoDB cluster. A InnoDB ReplicaSet consists of a single primary and multiple secondaries 

Note : For configure the InnoDB ReplicaSet , the servers should be configured with the GTID .

InnoDB ReplicaSet configuration …

[Read more]
Showing entries 1 to 10 of 21367
10 Older Entries »