-- Preparation: Drop the index if it exists to ensure clean testing
DROP INDEX idx_title ON film
-- StCreate the 'film' table if it doesn't exist
CREATE TABLE IF NOT EXISTS film (
id INT PRIMARY KEY,
title VARCHAR(255),
rating VARCHAR(10)
)
-- Step 2: Create an index on the `title` column
CREATE INDEX idx_title ON film(title);
-- Step 3: Explain the query again to observe index usage
EXPLAIN SELECT * FROM film WHERE title = 'ALONE TRIP';
-- Step 4: Explain a query that uses a `title` range condition (`title > 'ALONE TRIP'`)
EXPLAIN SELECT * FROM film WHERE title > 'ALONE TRIP';
-- Step 5: Explain a query that groups by `rating` without an index
EXPLAIN SELECT rating, COUNT(*) FROM film GROUP BY rating;
-- Step 6: Create an index on the `rating` column
CREATE INDEX idx_rating ON film(rating);
-- Step 7: Explain the query from Step 5 again to see index usage on `rating`
EXPLAIN SELECT rating, COUNT(*) FROM film GROUP BY rating;