Intermediate Topic 31 of 51 Databases
Query Optimization
Choosing efficient execution plans for queries.
How it works
Query optimization is the process by which the database, and the developer, makes queries faster. The optimizer parses SQL, generates equivalent plans, estimates costs from statistics about table sizes and value distributions, and picks the cheapest plan, choosing join order, join algorithm, access paths and use of indexes. Developers help by writing sargable conditions, adding the right indexes, selecting only needed columns and avoiding unnecessary sorts.
Step-by-step walkthrough
- The SQL is parsed.
- The optimizer generates equivalent plans, different join orders and index choices.
- It estimates the cost of each using table statistics.
- It chooses the cheapest.
- Stale statistics lead to bad plans, so run ANALYZE.
Where it is used
Slow web pages, reports and batch jobs are tuned by reading plans and changing queries or schema. Keeping statistics up to date lets the planner make good choices.
Common pitfall
Stale statistics cause bad plans, such as full scans or wrong join orders. Premature micro-optimization without measurement wastes time. Functions on columns, implicit casts and OR conditions can block indexes. Test with production-like data volume, because a plan good for a small table can be terrible for a large one. Use EXPLAIN before and after changes.
Where it fits in the course
Query Optimization is topic 31 of 51 in Databases, rated Intermediate. It follows Stored Procedures and Triggers. The next topic is Query Execution Plans.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Databases quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Databases quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Query Optimization?
Where do people use Query Optimization?
What is the most common mistake with Query Optimization?
What should I learn before this topic?
How can I practice it?
Is Query Optimization hard to learn?
How long does it take to learn Query Optimization?
Which topics are related to Query Optimization?
What should I study after Query Optimization?
Related topics
- Stored Procedures and Triggers (Databases)
- Query Execution Plans (Databases)
- MVCC (Databases)
- Window Functions (Databases)
- Optimization (Math for Computing)
- Convex Optimization (Math for Computing)
- Cost Optimization (DevOps & Tooling)