No Picture
InnoDB

Streaming versus blocking operators in MySQL

In MySQL, operators in a query execution plan can be classified as streaming or blocking. This classification is based on how they process and propagate rows during query execution. Let’s explore the differences between streaming […]

No Picture
MinervaDB

MySQL Scalar Subquery Unnesting transformation

Scalar subquery unnesting is a transformation technique that the MySQL optimizer uses to optimize queries involving scalar subqueries. Scalar subqueries return a single value. You typically use them in expressions or as part of the […]

No Picture
MinervaDB

How to gather statistics of PostgreSQL only when stale?

In PostgreSQL, you can gather statistics only when they become stale by using the pg_stat_statements extension along with the track_activity_query_size configuration parameter. Follow these steps to achieve this: CREATE EXTENSION pg_stat_statements; 3. Query the pg_stat_statements […]

No Picture
MinervaDB

PostgreSQL Query Optimizer: Troubleshooting Unconsidered Hints

PostgreSQL’s query optimizer (or planner) creates optimal execution plans for SQL queries by evaluating multiple possible plans and selecting the fastest one. [^1] Understanding PostgreSQL’s Approach to Optimizer Hints PostgreSQL takes a deliberately cautious approach […]

No Picture
MinervaDB

How to have PostgreSQL execution plan with run-time?

PostgreSQL Execution Plan In PostgreSQL, you can obtain the execution plan with runtime information using the EXPLAIN (ANALYZE, VERBOSE) command. This command in particular, provides a detailed execution plan along with actual runtime information, including […]