MariaDB Underrated Features: Zero Dates and Partial Dates
How do you represent information like this in a database? This event happened in 2015/06, but we don’t know in which day. This job is scheduled to happen on the first day of the month at 00:00:00,...
View ArticleQuery Optimisation: Using indexes for WHERE with multiple conditions
You have a beautiful application, but a page is slow. After some investigation, you find out that a query is unexpectedly slow, ruining user experience and causing frustration for you. It is a simple...
View ArticleHandling duplicate rows in MariaDB and MySQL
Most tables have a concept of “duplicate rows”, where duplicates should never be allowed. Typical examples are: We have a product table, the name column is UNIQUE. If I’ll try to insert a row with a...
View ArticleWhen indexes make SQL queries slower
During our SQL optimisation training courses, I always stress the need of understanding how databases run SQL queries internally. Which is easier and more intuitive than you’d think, anyway. But if...
View ArticleStored Procedures in MariaDB: Smarter, Easier and More Powerful
MariaDB supports stored procedures written in procedural SQL. Which essentially means “SQL with IF’s and loops”. Most DBMSs do the same, but every project supports different, incompatible syntaxes....
View ArticleThe EXPLAIN command and its variants in MariaDB and MySQL
For a very long time, the EXPLAIN command remained the same in the MariaDB and MySQL world. It was good enough in most cases, but the community welcomed the implementation of extensions and variants....
View ArticleA Review of 2024 in the Database World
It’s January 2025, so it’s a good time to look back, and write my thoughts on the most important events and trends of 2024 in the database world. Would you like to share your thoughts? I’d be happy to...
View ArticleThe Mystery of ProxySQL Galera Writer Switchover!
Writer switchover issues with ProxySQL and Galera can feel like an unsolved puzzle. Recently, I encountered two strange behaviors that revealed underlying issues in how ProxySQL interacts with Galera...
View ArticleEnhancing MySQL Security: Data-at-Rest Encryption with the Keyring Plugin
Data security has always been important for any organization handling sensitive information. Data-at-rest encryption is one of the key things used to protect stored data, ensuring that unauthorized...
View ArticleGetting Started with MindsDB and MySQL
If you have not already heard, Vettabase is now a partner of MindsDB, working on improving MySQL compatibility. In this post we shall take a look at getting started with MindsDB by connecting to MySQL...
View ArticleMariaDB/MySQL: working with storage engines
MariaDB and MySQL support several storage engines. See MariaDB and MySQL storage engines: an overview for a discussion about existing MariaDB and MySQL storage engines. Here we’ll see how to work with...
View ArticleMariaDB and MySQL storage engines: an overview
MySQL was the first DBMS to introduce the concept of storage engines in the early 2000s. This was one of its main features. Later, MariaDB extended the storage engine API and included some storage...
View ArticleMySQL 8.0.33 : Quick Overview
The MySQL Team has released MySQL 8.0.33 very recently on April 18, 2023. This release contains a number of bug fixes along with some interesting improvements. In this blog post, I’ll cover the most...
View ArticleOverview of detailed slow query logging in MySQL 8: log_slow_extra
Every MySQL 8 minor release comes with a good number of bug fixes as well as exciting new features. MySQL 8.0.14 introduced the new log_slow_extra parameter. It is used to enable additional fields in...
View ArticleHints to optimise queries with a LIKE comparison
In SQL, using the LIKE operator is a powerful way to find strings that match a certain pattern. It’s suitable for most use cases, thanks to its two jolly characters: _ means any one character. % means...
View ArticleHow to set up AWS Audit Log plugin for MySQL 8 Community
From this blog post, you’ll learn how to enable an audit log plugin on the Community version of MySQL 8 Server. There are some options available for MySQL Server 5.7 Community version, but they don’t...
View Article3.6 millions MySQL servers accessible from the web. Hints to keep yours secure
Shadowserver has announced that they found over 3.6 million MySQL servers exposed to the web, following their Accessible MySQL Server Report. At Vettabase we have no way to verify their data (it would...
View ArticleMariaDB/MySQL: Working with MD5 or other hashes
Hashes are normally represented in a human-readable format. The easiest way to work with them is to just insert this human-readable form into a table, as a string. But that is not an efficient way to...
View ArticleMariaDB: The “Regexp AND LIKE” optimisation
MariaDB, like most databases, allow to run queries that use regular expressions in the WHERE clause. While this is powerful, a problem with using a regexp in a database is that it can’t take advantage...
View Article