Увеличивает ли производительность SELECT foo в MySQL индексирование foo?
На RedditMirror.cc у меня есть база данных с 1,2 миллионами записей в таблице GrabbedSites, число которых увеличивается примерно на 500-2000 в день.
В начале своей карьеры мне было сказано, что только столбцы, которые должны быть проиндексированы, это те, которые вы
- будет делать ГДЕ или СОЕДИНЯТЬ ВЫБОР / ОБНОВЛЕНИЯ в будущем,
- нужны, чтобы они были УНИКАЛЬНЫМИ данными.
Из-за этого в GrabbedSites индексируется только один ключ (кроме первичного ключа): categoryID, но запрашивается 8 столбцов.
Сайт получает впечатляющие всплески флэш-трафика, иногда более 100 000 уникальных посетителей в день, и БД «облагается налогом» при использовании около 20%.
Поэтому мне интересно, будет ли в MySQL преимущество в производительности для добавления индексов ко всем 8 часто запрашиваемым столбцам ??
Редактировать: Запрос:
SELECT url,
title,
published,
reddit_key,
UNIX_TIMESTAMP(last_fetched) last_fetched,
comment_link
FROM GrabbedSites
WHERE published BETWEEN DATE_SUB('2010-09-03', INTERVAL 1 DAY)
AND '2010-09-03'
ORDER BY published;
Только индекс «опубликован».
Объяснение говорит: используя где; Использование файловой сортировки