Оптимально ли составлен запрос? Какие индексы нужно построить для эффективного выполнения запроса и почему?

SELECT rental_id FROM rental
WHERE rental_date BETWEEN '2005-07-01' AND '2005-08-01'
  AND customer_id = 2
ORDER BY rental_date, inventory_id;

Оптимально ли составлен запрос? Какие индексы нужно построить для эффективного выполнения запроса и почему?

SELECT rental_id FROM rental
WHERE TIMESTAMPDIFF(SECOND, '2005-07-01', rental_date) > 0
  AND customer_id = 2
ORDER BY rental_date;

Оптимально ли составлен запрос? Какие индексы нужно построить для эффективного выполнения запроса и почему?

SELECT rental_id FROM rental
WHERE rental_date BETWEEN '2005-07-01' AND '2005-08-01'
  AND customer_id = 2 OR customer_id = 42 OR customer_id = 73;

Оптимально ли составлен запрос? Какие индексы нужно построить для эффективного выполнения запроса и почему?

SELECT city.city_id, city.city, country.country
FROM city
JOIN country ON city.country_id = country.country_id
WHERE LEFT(city.city, 2) = 'MO';

Оптимально ли составлен запрос? Какие индексы нужно построить для эффективного выполнения запроса и почему?

SELECT COUNT(*), country.country
FROM city
JOIN country ON city.country_id = country.country_id
GROUP BY country.country;

Оптимально ли составлен запрос? Какие индексы нужно построить для эффективного выполнения запроса и почему?

SELECT film.title, SUM(payment.amount)
FROM customer
JOIN rental ON (rental.customer_id = customer.customer_id)
JOIN inventory ON (rental.inventory_id = inventory.inventory_id)
JOIN film ON (inventory.film_id = film.film_id)
JOIN payment ON (payment.rental_id = rental.rental_id)
WHERE YEAR(rental.rental_date) = 2005
  AND customer.store_id = 2
GROUP BY film.title;

Оптимально ли составлен запрос? Какие индексы нужно построить для эффективного выполнения запроса и почему?

SELECT country.country, COUNT(*)
FROM store
JOIN address ON (store.address_id = address.address_id)
JOIN city ON (city.city_id = address.city_id)
JOIN country ON (country.country_id = city.country_id)
WHERE LEFT(country.country, 1) = 'A'
GROUP BY country.country;

Оптимально ли составлен запрос? Какие индексы нужно построить для эффективного выполнения запроса и почему?

SELECT film_id, title, description
FROM film
WHERE (
  SELECT COUNT(*)
  FROM actor
  JOIN film_actor ON (film_actor.actor_id = actor.actor_id)
  WHERE film_actor.film_id = film.film_id
    AND actor.last_name = 'Monroe'
) > 0
  AND film.rating = 'G'
  AND film.release_year BETWEEN 2005 AND 2008;