GROUP BY clause in MySQL - Time & Space Complexity
When using the GROUP BY clause in SQL, it's important to know how the time to run the query changes as the data grows.
We want to understand how grouping rows affects the work the database does.
Analyze the time complexity of the following code snippet.
SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;
This query counts how many employees are in each department by grouping rows with the same department.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Scanning all rows in the employees table once.
- How many times: Once for each row in the table.
As the number of employees grows, the database must look at each row to group them.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 row checks |
| 100 | About 100 row checks |
| 1000 | About 1000 row checks |
Pattern observation: The work grows directly with the number of rows; doubling rows roughly doubles the work.
Time Complexity: O(n)
This means the time to run the query grows in a straight line with the number of rows in the table.
[X] Wrong: "GROUP BY makes the query run much slower because it does extra work for each group."
[OK] Correct: The main work is scanning all rows once; grouping just organizes them as it goes, so the time mostly depends on total rows, not groups.
Understanding how grouping affects query time helps you explain database behavior clearly and shows you know how data size impacts performance.
"What if we added an ORDER BY clause after GROUP BY? How would the time complexity change?"