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, every month and every year. This never happened. There are many ways to...
Federico Razzoli
Navigating Tree and Graph Data with Recursive SQL
Hierarchical and networked data appears everywhere in modern databases: organisational charts, product category trees, dependency graphs, and even transport networks. Applications need to retrieve this data to draw a chart, find out whom a certain employee reports to,...
Benefits of Importing Data with MariaDB CONNECT and PostgreSQL Data Wrappers
There are many ways to import data from external sources into a database. MariaDB and PostgreSQL offer native solutions: the MariaDB CONNECT storage engine and PostgreSQL Foreign Data Wrappers. Unfortunately, these options are often overlooked, in favour of more...
Why Your Database Deserves Consistent Names and Types
I see a lot of problems with database schemas: missing indexes, wrong types, tables used like an spreadsheet... but all these problems are widely known. An often overlooked problem is inconsistency. Let me explain how you should guarantee database consistency, and how...
To BLOB or not to BLOB? The image storage dilemma
Years ago, it was extremely common to store user-uploaded images and other multimedia contents in a database. This practice became less common over time, but I still hear questions like: would it be a bad idea to store images in our database? Or, more specifically:...
MariaDB 11.8 LTS: Parallel Dumps, PARSEC authentication, new SQL syntaxes, and more
MariaDB released a new Long Term Support version as Generally Available: 11.8. I always review MariaDB LTS versions once they're GA, so it's time to write a new review. Support and timeline MariaDB 11.8 is the latest Long Term Support version (LTS). The...
Query 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 query with a WHERE clause and nothing else. You tried to build an...
Vettabase is a MariaDB Foundation sponsor!
Blixy is documenting how to automate MariaDB administration with proper tools Vettabase is a MariaDB Foundation Silver sponsor! MariaDB powers some of the internet's biggest names—Wikipedia, WordPress.com, and Google rely on its robust, enterprise-grade performance....
Secure Architectures for MariaDB and Galera in AWS: VPCs and Security Groups
Running any production database deployment in the cloud requires careful consideration of both performance and security. In this article, I'll share a battle-tested approach for deploying a MariaDB Galera cluster with replicas, a ProxySQL layer in front of them, and...
Handling 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 name that already exists, the product I'm trying to insert is a...










