Given a table of employees and this query:
SELECT first_name, last_name, date_of_birth
FROM employees
WHERE date_of_birth >= ? AND date_of_birth
AND subsidiary_id = ?
Index(subsidiary_id, date_of_birth) is better than index(date_of_birth, subsidiary_id) because it visits fewer index leaf nodes. The difference is negligible if the date filter is very selective, but, otherwise, the larger the date range, the worse the performance.
34
208 reads
CURATED FROM
IDEAS CURATED BY
Alt account of @ocp. I use it to stash ideas about software engineering
Tips to improve the performance of your SQL queries
“
Similar ideas to Index for equality first, then for ranges
Order of the columns matter.
The index is useless if the first column doesn't appear in the WHERE clause.
Example 1:
An index on (t, x) will not be used in this query:
Read & Learn
20x Faster
without
deepstash
with
deepstash
with
deepstash
Personalized microlearning
—
100+ Learning Journeys
—
Access to 200,000+ ideas
—
Access to the mobile app
—
Unlimited idea saving
—
—
Unlimited history
—
—
Unlimited listening to ideas
—
—
Downloading & offline access
—
—
Supercharge your mind with one idea per day
Enter your email and spend 1 minute every day to learn something new.
I agree to receive email updates