Showing entries 1 to 10 of 1236
10 Older Entries »
Displaying posts with tag: Databases (reset)
Storage and Indexed access of denormalized columns (arrays) on MySQL 8.0, via multi-valued indexes

Another “missing and missed” functionality in MySQL is a data type for arrays.

While MySQL is not there yet, it’s now possible to cover a significant use case: storing denormalized columns (or arrays in general), and accessing them via index.

In this article I’ll give some context about denormalized data and indexes, including the workaround for such functionality on MySQL 5.7, and describe how this is (rather) cleanly accomplished on MySQL 8.0.

[Read more]
An introduction to Functional indexes in MySQL 8.0, and their gotchas

Another interesting feature released with MySQL 8.0 is full support for functional indexes.

Although this is not a strictly new concept in the MySQL world (indexed generated columns provided the same functionality), I find it worth reviewing, through some applications, notes and considerations.

All in all, I’m not 100% bought into functional indexes (as opposed to indexed generated columns); I’ll elaborate on this over the course of the article.

As a natural fit, generated columns are included in the article; additionally, some constructs build on my previous article, in relation to the subject of CTEs.

Updated on 12/Mar/2020: Found another bug.

Contents:

[Read more]
Generating sequences/ranges, via MySQL 8.0’s Common Table Expressions (CTEs)

A long-time missing (and missed) functionality in MySQL, is sequences/ranges.

As of MySQL 8.0, this functionality is still not supported in a general sense, however, it’s now possible to generate a sequence to be used within a single query.

In this article, I’ll give a brief introduction to CTEs, and explain how to build different sequence generators; additionally, I’ll introduce the new (cool) MySQL 8.0 query hint SET_VAR, and a pinch of virtual columns and functional indexes (“functional key parts”, another MySQL 8.0 feature).

Contents:

[Read more]
PreFOSDEM talk: Upgrading from MySQL 5.7 to MySQL 8.0

In this post I’ll expand on the subject of my MySQL pre-FOSDEM talk: what dbadmins need to know and do, when upgrading from MySQL 5.7 to 8.0.

I’ve already published two posts on two specific issues; in this article, I’ll give the complete picture.

As usual, I’ll use this post to introduce tooling concepts that may be useful in generic system administration.

The presentation code is hosted on a GitHub repository (including the …

[Read more]
MySQL Cloning: more thoughts

I posted a few days ago some initial thoughts on the the MySQL native cloning functionality. Overall this looks good and I need to spend time to test further. I’m here in San Francisco ahead of Oracle Open World which starts today. As is usual with trips like this jet lag wakes you up rather […]

MySQL 8.0.17+: Cloning is now much easier

If you use replication with MySQL, if you need a backup, if you need a spare copy of a system for testing and for many other reasons you need a way to make a copy of your MySQL system. In the past you could make a copy in various ways: using a cold file system […]

Summary of trailing spaces handling in MySQL, with version 8.0 upgrade considerations

Fairly recently, we’ve upgraded to MySQL 8; it’s been a relatively smooth transition, however, some minor differences needed to be handled. One of them is the behavior of trailing spaces.

Trailing spaces are a (not in a good way) surprising, but also widely covered argument. This article gives a short overview, and relates it to how this affects people upgrading to MySQL 8.0.

Contents:

[Read more]
Communications link failure MySQL JDBC with TLS

Ran into an interesting situation trying to configure a MySQL JDBC driver to connect over TLS (though the driver may call it SSL, TLS is the name for more recent versions of the protocol).

The error I was getting was pretty generic:

Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

With the relevant parts of the stacktrace, also being non helpful:

at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
        at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
        at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
        at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:455)
        at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
        at …
[Read more]
Giving back to the Community -- ChickTech Austin

I am doing something this weekend that is way out of my comfort zone and I want to encourage you to do something similar.  On Saturday I will be teaching a pop up workshop for Chick Tech Austin titled An Introduction to Databases with MySQL.  

Why is this out of my comfort zone?  I regularly speak to computer professional on databases and programming and have done so for years.  But this Saturday the class is made up of young women between the ages of fourteen and eighteen.For us oldsters, the class is made up of people half the age of MySQL, Python, and Java.  Their parents are probably younger than Structured Query Language! But these young folks are going to be inheriting our code bases based on technologies used today and integrated with future innovations. 

Another point of reference is that the …

[Read more]
Reminder: Madrid MySQL User Group Meetup presenting dbdeployer on Thursday in Madrid

This is a quick reminder that on Thursday (tomorrow) there there is a Madrid MySQL Users Group Meeting where Giuseppe Maxia will be presenting dbdeployer to us. More information can be found here. Do not forget to sign up if you are interested. We look forward to seeing you there.

Showing entries 1 to 10 of 1236
10 Older Entries »