An oversized InnoDB buffer pool will consume too many resources and can be slower than necessary. Let’s see how to check if we can shrink it. Continue reading Can we shrink InnoDB Buffer Pool?
InnoDB buffer pool is the most important memory area to allocate. It contains the most frequently read data and index entries from InnoDB tables. Let’s see how to check if it is big enough. Continue reading Is InnoDB Buffer Pool big enough?
It is quite common to use an equality condition and an IS NULL condition on the same columns. Unfortunately, this could make queries very slow. Continue reading MariaDB/MySQL IS NULL conditions and indexes
AUTO_INCREMENT primary keys are useful, because they save usthe trouble to generate a unique value for every row, delegating this task to the database. But when we reach the limit we need to take some action, or we won’t be able to insert more rows. Continue reading Monitoring that AUTO_INCREMENT values won’t reach the limit
Reducing the number of queries is important with any DBMS. There are two reasons for this: reducing the latency of applications; and reducing the workload for the database servers. Continue reading MySQL/MariaDB: use SQL properly to run less queries
MySQL 8.0 and 5.7 follow a new release policy that exposes users to important risks. They broke compatibility with Xtrabackup (again). Continue reading The risks of MySQL release policy
Transactions can be read only. This article explains what read only transactions are and why we should use them when appropriate. Continue reading READ ONLY transactions in MariaDB and MySQL
Running DROP statements in production is always dangerous. But there are some measures we can take to make them safer. Continue reading Dropping database objects in a safe way
In MariaDB and MySQL, all tables should have a primary key – especially InnoDB tables. Here’s why. Continue reading Why Tables need a Primary Key in MariaDB and MySQL
It is possible to prevent some users from seeing a set of rows in a certain table. Continue reading MariaDB/MySQL: Using views to grant or deny row-level privileges