[PR #11557] Make CountWalker use COUNT(*) when $distinct is explicitly set to false (#11552) #13096

Closed
opened 2026-01-22 16:16:10 +01:00 by admin · 0 comments
Owner

Original Pull Request: https://github.com/doctrine/orm/pull/11557

State: closed
Merged: Yes


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.

**Original Pull Request:** https://github.com/doctrine/orm/pull/11557 **State:** closed **Merged:** Yes --- 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.
admin added the pull-request label 2026-01-22 16:16:10 +01:00
admin closed this issue 2026-01-22 16:16:10 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#13096