Вопрос по бд mysql

В БД mysql есть одна единственная таблица «abc» с полями: id (int), name (varchar), cnt (int). В таблице содержится порядка 10 млн записей. Что нужно сделать, что быстро работали следующие запросы (3 разных случая)? Все остальные факторы кроме скорости чтения не критичны.

SELECT * FROM abc WHERE name = 'xxx' AND cnt = yyy
SELECT * FROM abc WHERE cnt = xxx AND name LIKE 'yyy%'
SELECT * FROM abc ORDER BY cnt ASC

Ответы (1 шт):

Автор решения: Saraht

Можно создать индексы на столбцах, по которым будут производиться поисковые операции. В данном случае, для первого и второго запроса это столбцы name и cnt. Для третьего запроса – столбец cnt.

CREATE INDEX idx_name_cnt ON abc (name, cnt);
CREATE INDEX idx_cnt ON abc (cnt);
→ Ссылка