Автор Тема: Как правильней создать индекс таблицы?  (Прочитано 2124 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Есть таблица:

table my_table
-------------------------
id - INT(11) - AUTO_INCREMENT,
name - VARCHAR(100),
rank1 - INT(11),
rank2 - INT(11),
rank3 - INT(11)
...

поля rank
  • - различные типы рейтинга, при выборке списка, я произвожу сортировку по рейтингу, но при этом рейтинг вычисляется по формуле:


SELECT id, name, (rank1/10 + rank2/5 + rank3) AS rank
FROM my_table
ORDER BY rank DESC
LIMIT 10

Объединять эти поля в одно - не нужно, мне нужны отдельные цифры.
Есть ли возможность создать индекс для ускорения расчета рейтинга для сортировки или все же прийдется создать поле rank_all котором будет обновляться при изменении одного из типов рейтинга?

Эксперименты проводить пока не могу - слишком мало записей, поэтому вывод результата всегда быстрый... :)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Как правильней создать индекс таблицы?
« Ответ #1 : 28 Ноября 2004, 18:01:10 »
Цитировать
Phoinix:
все же прийдется создать поле rank_all

ИМХО только так.
Потому как в mysql нет функциональных индексов
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28