In order to spot database misuse and/or to prove compliance to popular regulations including GDPR, PCI DSS, HIPAA, ... database administrators can be required to record and audit database activities. In this fifth episode of the MySQL Security series, we will see what MySQL Enterprise Audit provide to help organizations implement stronger security controls and satisfy regulatory compliance.
Over the last years a lot of research has been done on choosing the most efficient memory allocation library for MySQL and its impact on MySQL performance (InnoDB kernel_mutex Contention and Memory Allocators, Impact of memory allocators on MySQL performance, TCMalloc and MySQL, MySQL performance: Impact of memory allocators (Part 2), Concurrent large allocations: glibc malloc, jemalloc and …
[Read more]
And the results are in:
Innodb (no compression/original) - 660Gb
RocksDB - 209Gb
TokuDB (snappy) - 144Gb
TokuDB (LZMA) - 67Gb
Benchmark performance with mysqlslap on production sample queries
:
(8-9 Very quick SELECTs + 1-2 medium SELECTs)
Innodb (original)
Benchmark
Avg: 0.100 seconds
Min: 0.091 seconds
Max: 0.182 seconds
Total: 5.101s
TokuDB (snappy)
Benchmark
Avg: 0.100 seconds
Min: 0.089 seconds
Max: 0.183 seconds
Total: 5.106s
RocksDB
Benchmark
Avg: 0.113 seconds
Min: 0.104 seconds
Max: 0.164 seconds
Total: 5.730s
TokuDB (LZMA)
Benchmark
Avg: 0.099 seconds
Min: 0.090 seconds
Max: 0.155 seconds
Total: …
In this post, we'll look at how to implement ProxySQL with AWS Aurora. Recently, there have been a few discussions and customer requests that focused on AWS Aurora and how to make the various architectures and solutions more flexible. Flexible how, you may ask? Well, there are the usual expectations:
- How do you improve resource utilization?
- How I can filter (or block) things?
- Can I shard with Aurora?
- What is the best way to implement query caching?
- … and more.
The inclusion of ProxySQL solves many of the points above. We in Consulting design the solutions for our customers by applying the different functionalities to better match customers needs. Whenever we deal with Aurora, we've had …
[Read more]In this blog post, I’ll look at how you can use ProxySQL with AWS Aurora to further leverage database performance.
My previous article described how easy is to replace the native Aurora connector with ProxySQL. In this article, you will see WHY you should do that.
It is important to understand that aside from the basic optimization in the connectivity and connection management, ProxySQL also provides you with a new set of features that currently are not available in Aurora.
Just think:
- Better caching
- Query filtering
- Sharding
- Query substitution
- Firewalling
- … and more
We will cover areas like scalability, security and performance. In short, I think is more than worth it to spend some time and give …
[Read more]In this post, we’ll look at how to implement ProxySQL with AWS Aurora.
Recently, there have been a few discussions and customer requests that focused on AWS Aurora and how to make the various architectures and solutions more flexible.
Flexible how, you may ask? Well, there are the usual expectations:
- How do you improve resource utilization?
- How can I filter (or block) things?
- Can I shard with Aurora?
- What is the best way to implement query caching?
- … and more.
The inclusion of ProxySQL solves many of the points above. We in Consulting design the solutions for our customers by applying the different functionalities to better match customers needs. Whenever we deal …
[Read more]MySQL 8.0 introduces partial update of JSON values, which is a nice performance improvement for applications that frequently update small portions of large JSON documents. Before, in MySQL 5.7, whenever you made a change to a stored JSON document, the full new JSON document would be written to the database, even if the update just changed a few bytes in the document.…
Recently on MySQL Forums, somebody was looking for documentation or procedure to upgrade a MySQL InnoDB Cluster (or Group Replication cluster) to a newer version.
In this post I am illustrating the best practices to achieve this task safely.
To illustrate the procedure, I will use an InnoDB Cluster of 3
members: mysql1, mysql2 and
mysql3. The cluster is setup in Single-Primary mode
(mysql1) and runs MySQL 5.7.21.
Let’s have a look at the cluster status:
MySQL / mysql1:3306 / JS / cluster.status()
{
"clusterName": "MyCluster",
"defaultReplicaSet": {
"name": "default",
"primary": "mysql1:3306",
"ssl": "DISABLED",
"status": "OK",
"statusText": "Cluster is ONLINE and can tolerate up to …[Read more]
MySQL 8.0 GA is right around the corner. I
don't have precise information about its release, as I don't work
at Oracle. If I did, I would probably know, but I couldn't tell
when the release is scheduled to appear because of company
policies. I can, however, speculate and infer, based of my
experience with previous releases. My personal assessment is that
the release will appear before 9:00am PT on April 24, 2018. The "before"
can be anything from a few minutes to one week in advance.
Then, again, it may not happen at all if someone finds an
atrocious bug that needs to be fixed asap.
Either way, users are keen on testing the new release in its current state of release candidate. Here I show a few methods that allow you to have a taste of the new …
[Read more]In this blog post, we’ll show that you can plot MySQL data in real time using Percona Monitoring and Management (PMM).
In my previous blog post, I showed how we could load into any metrics, benchmarks into MySQL and visualize it with PMM. But that’s not all! We can even visualize most any kind of data from MySQL in real time. I am falling in love with the MySQL plugin for Grafana — it just makes things so easy and smooth.
This graph shows us the number of visitors to a website in real …
[Read more]