orm icon indicating copy to clipboard operation
orm copied to clipboard

Make CountWalker use COUNT(*) when $distinct is explicitly set to false (#11552)

Open d-ph opened this issue 1 year ago • 0 comments

This change makes CountWalker use COUNT(*) instead of COUNT(tbl.id), when the user declared that their query does not need to use (SELECT) DISTINCT, which is commonly the case when there are no JOINs in the query, or when the JOINs are only *ToOne.

Research showed that COUNT(*) allows databases to use index(-only) scans more eagerly from any of the indexed columns, especially when the query is using a WHERE-condition that filters on an indexed column.

Implements #11552.

d-ph avatar Jul 22 '24 09:07 d-ph