Why query optimization reduces execution time in DBMS Theory - Performance Analysis
Start learning this pattern below
Jump into concepts and practice - no test required
When a database runs a query, it can do the work in many ways. Query optimization helps find the fastest way.
We want to understand how optimization affects the time the query takes to finish.
Analyze the time complexity of this SQL query execution plan.
SELECT * FROM Orders
JOIN Customers ON Orders.CustomerID = Customers.ID
WHERE Customers.City = 'New York';
This query finds all orders from customers living in New York by joining two tables.
Look at what repeats when running this query.
- Primary operation: Scanning rows in Orders and Customers tables.
- How many times: Each row in Orders is checked against matching Customers rows.
As the number of rows grows, the work grows too.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 100 checks |
| 100 | About 10,000 checks |
| 1000 | About 1,000,000 checks |
Pattern observation: Without optimization, the work grows very fast as tables get bigger.
Time Complexity: O(n * m)
This means the time grows roughly by multiplying the sizes of the two tables involved.
[X] Wrong: "Query optimization just makes the computer faster, so time is shorter."
[OK] Correct: Optimization changes how the query runs, reducing repeated work, not just speeding up the machine.
Understanding how query optimization reduces repeated work helps you explain how databases handle big data efficiently.
"What if we add an index on Customers.City? How would the time complexity change?"
Practice
Solution
Step 1: Understand the role of query optimization
Query optimization helps the database find the best method to retrieve data efficiently.Step 2: Connect optimization to execution time
By choosing the fastest access path, the query runs quicker, reducing execution time.Final Answer:
It finds the fastest way to access and process data -> Option AQuick Check:
Optimization = Faster queries [OK]
- Thinking optimization deletes data
- Believing optimization increases database size
- Assuming optimization slows queries
Solution
Step 1: Identify the role of indexes in optimization
Indexes help the database find data faster without scanning the whole table.Step 2: Understand why other options are incorrect
Duplicating data or ignoring conditions would cause errors or inefficiency, not speed.Final Answer:
It uses indexes to quickly locate data -> Option AQuick Check:
Indexes speed up data search [OK]
- Thinking data duplication speeds queries
- Believing ignoring conditions helps
- Confusing compression with optimization
Solution
Step 1: Understand the effect of adding an index
An index on the name column allows the database to find names faster without scanning all rows.Step 2: Predict the impact on execution time
Because the database uses the index, the query runs faster, reducing execution time.Final Answer:
Execution time will decrease because the index speeds up data retrieval -> Option BQuick Check:
Index added = faster query [OK]
- Thinking indexes slow down queries
- Believing indexes have no effect
- Assuming execution time is random
Solution
Step 1: Identify the cause of slow query
Full table scan happens when no index exists on columns used in filtering conditions.Step 2: Apply the fix by adding an index
Adding an index on the WHERE clause column helps the database find matching rows faster, avoiding full scans.Final Answer:
Add an index on the column used in the WHERE clause -> Option CQuick Check:
Index on filter column = faster query [OK]
- Removing indexes thinking it helps
- Increasing database size to fix speed
- Removing query conditions to speed up
Solution
Step 1: Understand join optimization without indexes
Without indexes, the optimizer selects the best join algorithm to reduce scanning, such as a hash join.Step 2: Explain why other options are incorrect
The optimizer does not create indexes automatically, delete data, or sample data unless explicitly told.Final Answer:
By choosing a join method that minimizes data scanning, like a hash join -> Option DQuick Check:
Optimizer picks efficient join method [OK]
- Thinking optimizer auto-creates indexes
- Believing optimizer deletes data
- Assuming optimizer samples data automatically
