LearnViz CompSci
Home / Learn / Databases / Query Optimization

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

  1. The SQL is parsed.
  2. The optimizer generates equivalent plans, different join orders and index choices.
  3. It estimates the cost of each using table statistics.
  4. It chooses the cheapest.
  5. 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

How to study this topic

  1. Read the explanation above and restate the definition in your own words.
  2. Open the interactive lesson and answer its mini quiz.
  3. Read the common pitfall, then write a short example that avoids it.
  4. Check your understanding in the Databases quiz, and revisit the topic if you miss a question.

Frequently asked questions

What is Query Optimization?
Choosing efficient execution plans for queries. It belongs to Databases and is an intermediate-level topic.
Where do people use Query Optimization?
Slow web pages, reports and batch jobs are tuned by reading plans and changing queries or schema.
What is the most common mistake with Query Optimization?
Stale statistics cause bad plans, such as full scans or wrong join orders.
What should I learn before this topic?
Start with Stored Procedures and Triggers, the topic just before it in Databases.
How can I practice it?
Answer the mini quiz in the interactive lesson, then take the Databases quiz.
Is Query Optimization hard to learn?
It is an Intermediate topic. Be comfortable with the Beginner topics in this area first, then read the common pitfall carefully, since it is where most mistakes happen.
How long does it take to learn Query Optimization?
Most learners can read the explanation and finish the interactive lesson in under an hour. Fluency comes from applying the idea, so plan a few short practice sessions with the quiz.
Which topics are related to Query Optimization?
Stored Procedures and Triggers, Query Execution Plans, MVCC are closely connected. The full list is in the related topics section of this page.
What should I study after Query Optimization?
Continue with Query Execution Plans, the next topic in Databases.

Related topics