Общие > Базы данных

Индексы таблицы

(1/4) > >>

Tryapkonator:
Есть таблица новостей. Записей примерно 10 000, в день прибовляется порядка 30-50 записей. Неправильно индексил таблицу и сейчас сижу правлю, сталкнулся с проблемкой. Есть 2 независимых поля, дата (date, тип данных DATE) и латинское имя (lname, тип данных VARCHAR) новости (для ЧПУ). Так же есть куча смежных таблиц типа рейтинга и комментариев, которые соеденяются с таблицей новостей по ключу lname. Новости отображаются за конкретное число. Внимание вопрос =)))
Какой индекс правильнее кластеризовать? С одной стороны Кластеризация даты (индекс будет разряженым) поможет отображать список новостей на странице, но с другой стороны если кластеризовать латинское имя, это позволит более быстро соединять новость с комментами и рейтингом при отображении конкретной новости. Вот сижу и думаю, вообще я больше скланяюсь к первичной индексации даты, но вдруг я не прав =) Может кто сталкивался или есть какие мысли по этому поводу.

Меняздесьдавнонет:
а что мешает попробовать?

sarutobi:
Хмм... Если я правильно помню теорию БД то кластеризуют только Primary Key, одно из обязательных свойств которого - уникальность для любой строки таблицы. Date под это определение подходит с натягом, т.к есть ненулевая вероятность совпадения дат.
В твоем случае я бы попробовал создать сложный индекс date+lname.

Tryapkonator:
Да, намудрил, теорию я плохо помню =( если делать составной индекс по ключам date+lname, то точечные запросы по lname будут выполняться достаточно медленно. Ладно, попробую воспользоваться драгоценным советом   RomikChef`а, через пару дней скину стату сюда...

commander:
sarutobi

--- Цитировать ---Если я правильно помню теорию БД
--- Конец цитаты ---

не правильно помнишь!
Tryapkonator
индекс вешать на date

Навигация

[0] Главная страница сообщений

[#] Следующая страница

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 
Перейти к полной версии