No Picture
MySQL Internals

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
MySQL Internals

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
PostgreSQL Performance

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
PostgreSQL Internals

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 […]