Last time I shared a video that is an introduction to Using MySQL without the SQL. This
time I am adding two more videos -- one on Document Collections and another on simple indexes. The MySQL Document Store
is a simple, easy to use way to for developers to store data
without much of the traditional pre-requisite chores needed with
a relational database.
You simple connect to the MySQL instance using the new MySQL Shell to the schema of your choice,
create a document collection, and can start saving data right …
Percona XtraDB Cluster 8.0 is on the final stretch before GA release, and we have pre-release packages available for testing.
I wanted to see how Percona XtraDB Cluster 8.0 performs in CPU and IO-bound scenarios, like in my previous posts about MySQL Group Replication.
In this blog, I want to evaluate Percona XtraDB Cluster 8.0 scaling capabilities in cases when we increase the number of nodes and increase user connections. The version I used is available here: Percona-XtraDB-Cluster-8.0.18. …
[Read more]When I run a benchmark and want to measure the CPU efficiency of something, I find it’s often a good choice to run a benchmark program, as well as the database, on the same server. This is in order to eliminate network impact and to look at single-thread performance, to eliminate contention.
Usually, this approach gives rather stable results; for example, benchmarking MySQL with Sysbench OLTP Read-Only workload I get a variance of less than one percent between 1-minute runs.
In this case, though, I was seeing some 20 percent difference between the runs, which looked pretty random and would not go away even with longer 10-minute runs.
The benchmark I did was benchmarking MySQL through ProxySQL (all running on the same machine):
Sysbench -> ProxySQL -> MySQL
As I thought more about possible reasons, I thought CPU scheduling might be a problem. As requests pass …
[Read more]
Today, I am going to tell very interesting use-case where we have
used Blackhole engine as replication filter.
We have an Aurora Cluster(let's call it C1) where multiple
db's are hosted and multiple applications are writing data into
it. While in another project one application wanted to read the
data from one of the db's hosted on aurora cluster C1 & this new
project is hosted into another account.
Now the challenge is we don't want self hosted db which
supports replication filters(replicate-do-db) and bring …
A time for new beginnings beckons upon us, and Codership is pleased to announce the much anticipated Release Candidate of MySQL 8.0 that comes with Galera 4. It comes with MySQL 8.0.19 and includes the Galera Replication Library 4.5 Release Candidate and wsrep API version 26.
Galera 4 and MySQL 8.0.19 have many new features, but here are some of the highlights:
- Streaming replication to support large transactions by splitting transaction replication then applying them in smaller fragments.
- Improved foreign key support, as write set certification rules are optimised and there will be a reduction in the number of foreign key related false conflicts in certifications.
- Group commit is …
InnoDB uses mutexes for exclusive access and rw-locks for the shared access of the resources. rw-locks are used to control access to the common shared resources like buffer pool pages, tablespaces, adaptive search systems, data-dictionary, informaton_schema, etc… In short, rw-locks play a very important role in the InnoDB system and so tracking and monitoring them is important too.
InnoDB provides an easy way to track them using “SHOW ENGINE INNODB STATUS”.
RW-shared spins 38667, rounds 54868, OS waits 16539
RW-excl spins 6353, rounds 126218, OS waits 3936
RW-sx spins 1896, rounds 43888, OS waits 966
Spin rounds per wait: 1.42 RW-shared, 19.87 RW-excl, 23.15 RW-sx
In this article we will try to understand how these stats are calculated and what is the significance of each of these numbers. We will also try to draw inferences using different use-cases and touch base important stats …
[Read more]When connecting to a local MySQL instance, you have two commonly used methods: use TCP/IP protocol to connect to local address – “localhost” or 127.0.0.1 – or use Unix Domain Socket.
If you have a choice (if your application supports both methods), use Unix Domain Socket as this is both more secure and more efficient.
How much more efficient, though? I have not looked at this topic in years, so let’s see how a modern MySQL version does on relatively modern hardware and modern Linux.
Benchmarking TCP/IP Connection vs Unix Domain Socket for MySQL
I’m testing Percona Server for MySQL 8.0.19 running on Ubuntu 18.04 on a Dual Socket 28 Core/56 Threads Server. (Though I have validated results on 4 …
[Read more]Early on in the MySQL 8.0 Release series there were a couple of key items related to our everyday use. They are MySQL-Shell‘s establishing the “Pluggable Password Store” in 8.0.12, and its super enhance API Command Line Interface in 8.0.13… which the Pluggable Password Store also adopted. Sadly, most content highlighting the API CLI capability when it came… Read More »
Why Debug MySQL?
Building MySQL from its source code sounds like something you won't normally do, though it can be useful for several scenarios:
- When you want to contribute to MySQL with a new feature or a bug fix.
- When you want to explore how MySQL or the underline engines behave, beyond what's documented.
- When you're considering to fork MySQL for your work and customize it in your own repository.
- When you want to create a custom MySQL build with custom build parameters or compiler optimizations.
For us at EverSQL, it's reason #2.
To improve our query optimization algorithms, we're constantly exploring the database's source code, to learn how the database operates, beyond what's actually documented, and how can our product complement the database's core functionality.
In this tutorial, you'll learn …
[Read more]It’s the in-between term time and we’re all stuck at home. I decided to update the image for my Fedora 30 virtual machine. I had a work around to the update issue that I had encountered last October in Bug #96969 but it was not required with the current version. However, after updating from MySQL 8.0.17 to MySQL 8.0.19, I found that my Java connection example failed.
The $CLASSPATH value was correct:
/usr/share/java/mysql-connector-java.jar:.
The first error that I got was the my reference to MySQL JDBC driver was incorrect. The error message is quite clear:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. Cannot connect to database server: The server time zone …[Read more]