2013-09-24 1 views
3

У меня относительно широкий стол (50 столбцов). Из них первые 5 представляют объем определенного подмножества данных, а последние 45 представляют свойства (отображаемые во время развертывания, поэтому статические). У пользователей есть возможность (через построитель запросов) запросить такую ​​таблицу и любую комбинацию ее столбцов свойств.Оптимальный способ индексирования большой плоской таблицы с учетом динамических запросов

Теперь я задаюсь вопросом, какая была бы лучшая стратегия для создания индексов для этой таблицы. Эффективно, было бы лучше создать большое количество «маленьких» индексов или небольшое количество индексов, охватывающих многие столбцы?

ответ

3

Если таблица не сильно обновляется (обновляет, вставляет, удаляет), лучшая стратегия заключается в создании растровых индексов для каждой строки. Индексы битмапа малы и лучше всего подходят для объединения условий.

Если таблица обновляется значительная вероятно, вы должны полагаться на создание нормальных (ВТКЕЕ) индексы на столбцах наиболее queryed (после анализа на все запросы.)

+0

таблица собирается получить вставки с разумной частотой (даже в перспективе, мы не будем превышать 1 вставку в секунду, и это очень высокий конец). Нет обновлений и практически без удаления (только для ведения домашнего хозяйства). Учитывая эту дополнительную информацию, предложите ли вы использовать bitmap или btree? – Andrea

+0

Вставки имеют некоторый столбец даты? (Знаете ли вы, какие из последних записей?) –

+0

Да, есть столбец временной метки, а вставки синхронизируются с временем базы данных – Andrea