Вопрос об индексах, касающихся усиления вставок и обновлений в базе данных

У меня вопрос о тонкой грани между приростом индекса к таблице, который постоянно увеличивается в размере каждый месяц, и приростом запросов с индексом.

Ситуация такова, что у меня есть две таблицы, Table1 и Table2. Каждая таблица растет медленно, но регулярно каждый месяц (около 100 новых строк для Table1 и несколько строк для Table2).

Мой конкретный вопрос: есть ли индекс или отказаться от него? Я провел некоторые измерения, чтобы индекс покрытия в Таблице 2 улучшил мои запросы SELECT, а некоторые довольно сильно, но, опять же, я должен рассмотреть плюсы и минусы, но мне действительно трудно принять решение.

Для Таблицы 1 может быть необязательно иметь индекс, потому что запросы SELECT там не так распространены.

Буду признателен за любые предложения, советы или просто хороший совет о том, что является хорошим решением. Кстати, я использую IBM DB2 версии 9.7 в качестве своей системы баз данных

Искренне

Mestika

1 ответ

Любой дополнительный индекс сделает ваши вставки медленнее и ваши запросы быстрее.

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

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

Тогда вам придется спросить себя:

Какая производительность запросов мне нужна?
Если производительность запроса достаточно высока без индекса, просто: не добавляйте индекс!

Какая производительность вставки мне нужна?
Может ли он опуститься ниже необходимого лимита с помощью дополнительного индекса? Если нет, просто: добавьте индекс!

Если вы обнаружите, что индекс абсолютно необходим для производительности запросов, и вы не можете получить требуемую производительность вставки с индексом, вам может потребоваться купить более качественное оборудование. Твердотельные диски могут творить чудеса для серверов баз данных, и они становятся доступными.

Если ваша система в любом случае работает нормально, не беспокойтесь, пусть она работает как есть.

Другие вопросы по тегам