The world is moving to UTF8, MySQL 8.0 has utf8mb4 charset as default now, but, to be honest, I was pretty surprised how sensible the "charset" related topic could be.. -- in fact you may easily hit huge performance overhead just by using an "odd" config settings around your client/server charset and collation. While to avoid any potential charset mismatch between client and server, MySQL has from a long time an excellent option : "skip-character-set-client-handshake" which is forcing any client connection to be "aligned" with server settings ! (for more details see the ref. manual : https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_character-set-client-handshake) -- this option is NOT set by default (to leave you a freedom in choose of charsets used on client and server sides). However, in my …
[Read more]
Last year we already published our over 2.1M QPS record with MySQL 8.0 -- it was not
yet GA on that moment and the result was obtained on the server
with 4CPU Sockets (4S) Intel Broadwell v4. We did not plan any
improvement in 8.0 for RO related workloads, and the main target
of this test was to ensure there is NO regressions in the results
(yet) comparing to MySQL 5.7 (where the main RO improvements were
delivered). While for MySQL 8.0 we mostly focused our efforts on
lagging WRITE performance in MySQL/InnoDB, and our "target HW"
was 2CPU Sockets servers (2S) -- which is probably the most
widely used HW configuration for todays MySQL Server
deployments..
However, not only SW, but also HW is progressing quickly these
days ! -- and one of my biggest surprises last time was about
Intel Skylake CPU ;-)) -- the following graph is …
This is just a short reminder about what to keep in mind when you're preparing some MySQL 8.0 performance testing (or any other 8.0 evaluation) and want to do it "with less blood" ;-))
So far, here is the list :
- 8.0 is using UTF8 by default, so if you're expecting to compare apples-to-apples, configure it with "latin1" as it was before to compare to 5.7/5.6/etc. (or configure them all to UTF8 if your target is to compare UTF8)..
- binlog is enabled by default, so mind to switch it OFF if it's not in your target..
- SSL is ON by default (switch it OFF if not your target)
- auto UNDO truncate is ON by default (if you prefer to avoid any periodic spikes in background of flushing activity due UNDO auto truncate, just switch this features OFF (while you'll still be able to involve the same truncate manually whenever you need it))
- there is a new …
Version 0.3.0 of dbdeployer has gained the ability of deploying
multiple sandboxes concurrently. Whenever we deploy a group of
sandboxes (replication, multiple) we can use
the --concurrent flag, telling dbdeployer that it
should run operations concurrently.
What happens when a single sandbox gets deployed? There are six sets of operations:
- Create the sandbox directory and write down its scripts;
- Run the initialisation script;
- Start the database server;
- Run the pre-grants SQL commands (if any;)
- Load the grants; …
Recently we had a report from a user who had seen a stunning 90% performance regression after upgrading his server to a Linux kernel with KPTI (kernel page-table isolation – a remedy for the Meltdown vulnerability). A big deal of those 90% was caused by running in an old version of VMware which doesn’t pass […]
The post MyISAM and KPTI – Performance Implications From The Meltdown Fix appeared first on MariaDB.org.
In this blog post, I’ll look at whether optimizing indexing is always the key to improving MySQL query performance (spoiler, it isn’t).
As we look at MySQL query performance, our first concern is often whether a query is using the right indexes to retrieve the data. This is based on the assumption that finding the data is the most expensive operation – and the one you should focus on for MySQL query optimization. However, this is not always the case.
Let’s look at this query for illustration:
mysql> show create table tbl G
*************************** 1. row ***************************
Table: tbl
Create Table: CREATE TABLE `tbl` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`k` int(11) NOT NULL DEFAULT '0',
`g` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `k_1` (`k`)
) ENGINE=InnoDB …[Read more]
Please join Percona’s Principal Support Engineer, Sveta Smirnova, as she presents Troubleshooting MySQL Crashes on January 25, 2018, at 10:00 am PST (UTC -8) / 1:00 pm EST (UTC -5).
This webinar is for every MySQL user! In this talk, I won’t focus on how to analyze core files, read the source code or set breakpoints. Instead, I will focus on techniques that are available to anyone, even a novice.
Many tutorials, including my own, written based on Roel Van de Paar’s video, suggest how to create and analyze core files created at the time of a crash. While this …
[Read more]In this blog post, we’ll look at does the Meltdown fix affect performance for MySQL on bare metal servers.
Since the news about the Meltdown bug, there were a lot of reports on the performance hit from proposed fixes. We have looked at how the fix affects MySQL (Percona Server for MySQL) under a sysbench workload.
In this case, we used bare metal boxes with the following specifications:
- Two-socket Intel(R) Xeon(R) CPU E5-2683 v3 @ 2.00GHz (in total 56 entries in /proc/cpuinfo)
- Ubuntu 16.04
- Memory: 256GB
- Storage: Samsung SM863 1.9TB SATA SSD
- Percona Server for MySQL 5.7.20
- Kernel (vulnerable) 4.13.0-21
- Kernel (with Meltdown fix) 4.13.0-25
Please note, the current kernel for Ubuntu 16.04 contains only a Meltdown fix, …
[Read more]Having good historial metrics monitoring in place is critical for properly operating, maintaining and troubleshooting database systems, and Percona Monitoring and Management is one of the options we recommend to our clients for this.
One common concern among potential users is how using this may impact their database’s performance. As I could not find any conclusive information about this, I set out to do some basic tests and this post shows my results.
To begin, let me describe my setup. I used the following Google Cloud instances:
- One 4 vCPU instance for the MySQL server
- One 2 vCPU instance for the sysbench client
- One 1 vCPU instance for the PMM server
I used Percona Server 5.7 and PMM 1.5.3 installed via Docker. Slow query log was enabled with long_query_time set to 0 …
[Read more]Cloud-based Relational Database Services (RDS) offer businesses a variety of traditional Relational Database Management Systems (RDBMS) with several management and configuration options. In the Top 10 Things to Know about Amazon RDS blog, we covered Amazon RDS. In today’s article, we’ll be presenting Alibaba Cloud RDS. If you’ve been considering moving some or all of your database infrastructure to Alibaba Cloud RDS, or any Cloud RDS for that matter, there are many things to consider. Here are the top 10 things you need to know before taking the plunge.
About Alibaba Cloud RDS
Alibaba Cloud RDS, whose full name is Alibaba Cloud ApsaraDB for RDS, is an on-demand database service that handles some of the administrative tasks associated with managing a database, thus leaving you with more time to focus on your core business. …
[Read more]