In a previous blog post, I showed how a DBA could configure MySQL or MariaDB to automatically drop old partitions. Some readers provided some feedback on some issues that they’ve run into while doing similar operations. Specifically: It can sometimes help to maintain an empty first partition when partitioning by dates, since partition pruning cannot always eliminate the first partition. ... Read More
In this blog post, we’ll look at nested data structures in ClickHouse and how this can be used with PMM to look at queries.
Nested structures are not common in Relational Database Management Systems. Usually, it’s just flat tables. Sometimes it would be convenient to store unstructured information in structured databases.
We are working to adapt ClickHouse as a long term storage for Percona Monitoring and Management (PMM), and particularly to store detailed information about queries. One of the problems we are trying to solve is to count the different errors that cause a particular query to fail.
For example, for date 2017-08-17 the query:
"SELECT foo FROM bar WHERE …[Read more]
Dear MySQL Users,
MySQL Connector/J 5.1.44, a maintenance release of the production
5.1
branch has been released. Connector/J is the Type-IV pure-Java
JDBC
driver for MySQL.
MySQL Connector Java is available in source and binary form from
the
Connector/J download pages at
http://dev.mysql.com/downloads/connector/j/5.1.html
and mirror sites as well as Maven-2 repositories.
MySQL Connector Java (Commercial) is already available for
download on the
My Oracle Support (MOS) website. This release will be available
on eDelivery
(OSDC) in next month’s upload cycle.
As always, we recommend that you check the “CHANGES” file in
the
download archive to be aware of changes in behavior that might
affect
your application.
MySQL Connector/J 5.1.44 includes the following general bug fixes
and
improvements, also available in more detail on …
Building high availability, one step at a time
When it comes to database infrastructure, we all want it. We all strive to build a highly available setup. Redundancy is the key. We start to implement redundancy at the lowest level and continue up the stack. It starts with hardware - redundant power supplies, redundant cooling, hot-swap disks. Network layer - multiple NIC’s bonded together and connected to different switches which are using redundant routers. For storage we use disks set in RAID, which gives better performance but also redundancy. Then, on the software level, we use clustering technologies: multiple database nodes working together to implement redundancy: MySQL Cluster, Galera Cluster.
Related resources
Galera Cluster for MySQL Tutorial
…
[Read more]We all know that if we add a MySQL index to speed up a read, we end up making writes slower. How often do we do the analysis to look at how much more work is done?
Recently, a developer came to me and wanted to add an index to a very large table (hundreds of gigabytes) to speed up a query. We did some testing on a moderately used server:
Set long_query_time to 0 and turn slow query logging on
Turn slow query logging off after 30 minutes.
Add the index (was on a single field)
Repeat the slow query logging for 30 minutes at a similar time frame (in our case, we did middle of the day usage on a Tuesday and Wednesday, when the database is heavily used).
Then I looked at the write analysis – there were no DELETEs, no UPDATEs that updated the indexed field, and no UPDATEs that used the indexed field in the filtering. There were only INSERTs, and with the help of pt-query-digest, here’s what I found: …
[Read more]In this blog post, I will look at disk utilization and saturation.
In my previous blog post, I wrote about CPU utilization and saturation, the practical difference between them and how different CPU utilization and saturation impact response times. Now we will look at another critical component of database performance: the storage subsystem. In this post, I will refer to the storage subsystem as “disk” (as a casual catch-all).
The most common tool for command line IO performance monitoring is
iostat
, which shows information like this:
root@ts140i:~# iostat -x nvme0n1 5 Linux 4.4.0-89-generic (ts140i) 08/05/2017 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.51 0.00 2.00 9.45 0.00 88.04 Device: rrqm/s wrqm/s …[Read more]
By default for MySQL server, InnoDB Engine is getting used widely due it’s ACID support, optimized read-write performance and for many other reasons which are great significance for the database server.
In this blog post, we are going to cover the InnoDB tablespace and its features like,
- InnoDB engine tablespaces
- Tablespace Data Encryption
- Tablespace related Configuration
InnoDB engine tablespaces System tablespace:
Common tablespace for MySQL server operations. Apart from the table data storage, InnoDB’s functionality requires looking for table metadata, storing and retrieving MVCC info to support ACID compliance and Transaction Isolation. It contains several types of information for InnoDB objects.
- Contains:
Table Data Pages
Table Index Pages …
SQLite is really a good tool to set up quick proof of concepts and small applications; however it’s not the most robust solution on the market for working with relational databases. In the open source community two databases take the top of the list: PostgreSQL and MySQL.
I did a small project for my studies. I was using SQLite as I didn’t need much out of it. Curious, I decided to see how the application would behave on other databases and decided to try PostgreSQL and MySQL. I had two problems to solve, and this post is about the first one: how to deal with the migrations. They were as follows:
Active Record automatically put the field id
in all
of its tables, that’s why it is omitted on the migrations.
In PostgreSQL it …
[Read more]