We're delighted to announce the release of Vitess 20 along with version 2.13.0 of the Vitess Kubernetes Operator. Version 20 focuses on usability and maturity of existing features, and continues to build on the solid foundation of scalability and performance established in previous versions. Our commitment remains steadfast in providing a powerful, scalable, and reliable solution for your database scaling needs. What's New in Vitess 20 # Query Compatibility: enhanced DML support including improved query compatibility, Vindex hints, and extended support for various sharded update and delete operations.
We know that SQL statement compatibility can change with major database version upgrades and that you should adequately test for them. But what about minor version upgrades?
It is dangerous to assume that your existing SQL statements work with a minor update, especially when using an augmented version of an open-source database such as a cloud provider that may not be as transparent about all changes.
While I have always found reading the release notes an important step in architectural principles over the decades, many organizations skip over this principle and get caught off guard when there are no dedicated DBAs and architects in the engineering workforce.
Real-world examples of minor version upgrade issues
Here are two real-world situations common in the AWS RDS ecosystem using MySQL.
- You are an organization that uses RDS Aurora MySQL for its production systems, and you upgrade one minor version …
Codership is pleased to announce a new Generally Available (GA) release of the multi-master Galera Cluster for MySQL 8.0, consisting of MySQL-wsrep 8.0.36-26.18 (release notes, download). There is no change to the Galera replication library 4.18 (release notes, download) implementing wsrep API version 26. This release incorporates all changes to MySQL 8.0.36, adding a synchronous option for your MySQL High Availability solutions.
This is a …
[Read more]
A support question: Somebody had a WordPress installation, in
which a table had entries with an id column that
contained multiple entries with 0. The table was
supposed to undergo a schema change where id becomes
an actual primary key, and auto_increment. They
needed to find all rows WHERE id=0 and assign them
unique id values.
Here is a test table:
mysql> create table b ( id integer not null, d varchar(255));
Query OK, 0 rows affected (0.25 sec)
kris> insert into b values (0, "1"), (0, "2"), (3, "3");
Query OK, 3 rows affected (0.06 sec)
Records: 3 Duplicates: 0 Warnings: 0
kris> select * from b;
+----+------+
| id | d |
+----+------+
| 0 | 1 |
| 0 | 2 |
| 3 | 3 |
+----+------+
3 rows in set (0.00 sec)
…
[Read more]
A support question: Somebody had a WordPress installation, in
which a table had entries with an id column that
contained multiple entries with 0. The table was
supposed to undergo a schema change where id becomes
an actual primary key, and auto_increment. They
needed to find all rows WHERE id=0 and assign them
unique id values.
Here is a test table:
mysql> create table b ( id integer not null, d varchar(255));
Query OK, 0 rows affected (0.25 sec)
kris> insert into b values (0, "1"), (0, "2"), (3, "3");
Query OK, 3 rows affected (0.06 sec)
Records: 3 Duplicates: 0 Warnings: 0
kris> select * from b;
+----+------+
| id | d |
+----+------+
| 0 | 1 |
| 0 | 2 |
| 3 | 3 |
+----+------+
3 rows in set (0.00 sec)
[Read more]
When considering the performance of any software, there's a classic trade-off between time and space. In the process of assessing the performance of a MySQL query, we often focus on execution time (or query latency) and use it as the primary metric for query performance. This is a good metric to use, as ultimately, we want to get query results as quickly as possible.
I recently released a blog post about how to identify and profile problematic MySQL queries, with a discussion centered around measuring poor performance in terms of execution time and row reads. However, in this discussion, memory consumption was largely ignored.
Though it may not be needed as often, MySQL also has built-in mechanisms for gaining a deep understanding of both how much memory a query is using and also what that memory is being used for. Let's …
[Read more]The Oracle Cloud Infrastructure (OCI) command line interface (CLI) allows users to manage OCI resources. In this post, we will discuss how to use the OCI CLI to retrieve a list of MySQL HeatWave instances, retrieve more detailed information for a specific instance, and update properties of that instance.
This is the second post in a series dedicated to showing how to use the OCI CLI to manage MySQL HeatWave resources. In this post we will discuss how to list MySQL HeatWaves instances in a compartment and how to update some of the information pertaining to the instance. Prerequisites Before you can run any of the examples below, […]
Oracle offers a variety of SDKs for interacting with Oracle Cloud Infrastructure resources. In this post we discuss how to update some propertied of a backup of a MySQL HeatWave instance.
This post is the sixth in a series that will demonstrate how to view and manage MySQL HeatWave instances in Oracle Cloud Infrastructure (OCI). Oracle offers several SDKs that can be used to view and manage resources in OCI. In this post, we will discuss how to leverage the TypeScript/JavaScript SDK to programmatically update data of a backup of a MySQL HeatWave instance. […]