Modifying table structures is sometimes necessary, or desirable. Modifying them online can be a pain, especially with big tables. Migrations should be ran properly in production.
Let’s use Percona User Statistics to analyse our most used tables, and to look for problems where they mostly matter.
Relational DBMSs allow to grant users permissions on certain tables or columns. Here we’ll discuss how to restrict access to a certain set of rows.
MySQL supports replication filters and binlog filters. These features are powerful, but dangerous. Here you’ll find out the risks, and how to mitigate them.
Foreign keys are a controversial topic. MySQL and MariaDB implementation has several bugs and limitations, that are discussed here.
Maybe you’re wondering why in MySQL/MariaDB ‘string’ seems to be the same as ‘STRING’. Or maybe that’s not the case for you, but you would like to make a case insensitive search. This article explains how to write a case …
MySQL transactions can be read only. Here’s how to use them, and why they are useful.
In MySQL and MariaDB, all tables should have a primary key – especially InnoDB tables – this is almost common wisdom. But why? Let’s discuss the reasons.
Reducing the number of queries is important. The article describes how to use the SQL language more expressively (in MySQL) to achieve the purpose.
Returning random rows in a random order from a relational database is a very hard problem. In this article we will see an antipattern, we will discuss why this problem is so hard, and we’ll examine some imperfect solutions.