Вопрос по бд 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);