Вопрос об индексах, касающихся увеличения количества вставок и обновлений в базе данных. - PullRequest
0 голосов
/ 16 мая 2010

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

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

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

Для Table1 , возможно, нет необходимости иметь индекс, поскольку запросы SELECT там не столь распространены.

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

С уважением * * 1023

Mestika

1 Ответ

2 голосов
/ 16 мая 2010

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

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

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...