Everything you need to know about MySQL as an application developer, with a focus on improving query performance. After covering the high-level overview, we’ll put the learnings to the test with some hands-on examples.
When it comes to using MySQL in the cloud, customers have numerous options considering that all major cloud providers offer a MySQL cloud service. Find out who provides the best value.
The KubeCon around the Kubernetes technology was one of the events I dreamed to attend since I’m focusing on the CloudNative solutions. I had the great opportunity to attend the KubeCon & CloundNativeCon in Amsterdam with my colleague Benoît Entzmann.
There is now CNCF-hosted Co-located events adding more topics and interesting sessions. This is community-driven, vendor-neutral events hosted and managed by the CNCF. ArgoCD, Cilium, Linkerd have now their own conference. Here is the list of CNCF-hosted Co-located events.
Unfortunately, all the above events were already sold out when we decided to come at the KubeCon.
During the 1st day Keynote, Chris Aniszczyk CTO of the CNCF mentioned that for this year, the increase of the number of participants was just amazing reaching more than 10’000 people. The number of CNCF projects also increased a lot. I feel that the main message of this Keynote is that …
[Read more]MySQL released version 8.0.33 on April 18th, featuring some attention-catching features. This blog post is a quick review of the release notes looking for the exciting items, and comments in italics are solely my own.
User-defined collations are now deprecated and will be removed in a future version. This is probably not a show-stopper for most and probably a scary situation for those dependent on them as there may not be an alternative. Hopefully, UTF8MB4 is good enough.
The Performance Shema now has a Server Telemetry Traces service. This interface provides plugins and components a way to retrieve notifications related to SQL statements’ lifetime. We are directed to the Server telemetry traces service section in the MySQL Source Code documentation
The SSL library has been updated to OpenSSL version …
[Read more]“The customer is always right” – that’s a saying that serious businesses actually say sometimes, with a serious and straight face. It’s one of those sayings rooted in good intentions and immediately polluted with the messy reality of the real world.
When you’re working in Database or even Network Engineering, the real answer is far more complicated and nuanced, but it’s much closer to “the customer is always wrong”. That is not to say that the Database or Network Engineer is right, either, though.
Usually the customer (in this case usually a Software Engineer) comes to us, or more likely pages us, with something like “the database is down”. Why? Because they got an error message like “The server has gone away” or “Too many connections” or “Host unreachable” or any number of error messages which are simultaneously too descriptive, and completely unhelpful. Such error messages are good at leading people …
[Read more]Any good DBA will tell you to "select only what you need." It's one of the most common aphorisms, and for good reason! We don't ever want to select data that we're just going to throw away. One way this advice manifests itself is to not use SELECT * if you don't need all the columns. By limiting the columns returned, you're selecting only what you need. Pagination is another way to "select only what you need." Although, this time, we're limiting the rows instead of the columns. Instead of pulling all the records out of the database, we only pull a single page that we're going to show to the user. There are two primary ways to paginate in MySQL: offset/limit and cursors. Which method you choose depends on your use case and your application's requirements. Neither is inherently better than the other. They each have their own strengths and weaknesses. The importance of deterministic ordering Before we talk about the wonders of pagination, we need to …
[Read more]An overview of the different ways to paginate in MySQL including limit/offset pagination and cursor pagination plus the pros and cons of each.
A common question we get is: can I add a node to my Galera Cluster without restarting the entire cluster? The simple answer is YES.
A lot worry about the fact that you do list servers that are part of the cluster within your my.cnf, and this file is not reloadable in a dynamic fashion. Fret not, though, because as long as your my.cnf has one active cluster member (the DONOR), you can have it be the JOINER.
If for example, you have 3 nodes: galera1: 159.223.105.21 galera2: 137.184.78.182 galera3: 137.184.65.171
The my.cnf line for wsrep_address should read as follows:
wsrep_cluster_address="gcomm://159.223.105.21,137.184.78.182,137.184.65.171"
It is then trivial for you to have your fourth server (say, galera4: 161.35.120.111), have a my.cnf that reads as follows:
wsrep_cluster_address="gcomm://159.223.105.21,137.184.78.182,137.184.65.171,161.35.120.111"
Now, …
[Read more]During the early stages of my career, I was captivated by the theories and concepts surrounding foreign keys and how they empowered us to maintain data integrity. However, in practical application, I have found them to be quite challenging to manage. I am sure you’re a champion DBA, but I keep my distance from foreign keys.
With that short story as a background, this post aims to address the dilemma that arises when utilizing the pt-online-schema-change tool on tables that contain foreign keys.
We already know what one of the most used Percona tools pt-online-schema-change is and how pt-online-schema-change handles foreign keys.
When utilizing the pt-online-schema-change tool to alter a table, such as …
[Read more]When using the MySQL Document Store API, we can use MySQL functions in the fields() method. In this post, we will talk about how you can use MySQL functions to return aggregate data from properties with simple values and how to use user-defined functions to return aggregate values from properties that are arrays.