Вопрос об индексах, касающихся усиления вставок и обновлений в базе данных
У меня вопрос о тонкой грани между приростом индекса к таблице, который постоянно увеличивается в размере каждый месяц, и приростом запросов с индексом.
Ситуация такова, что у меня есть две таблицы, Table1 и Table2. Каждая таблица растет медленно, но регулярно каждый месяц (около 100 новых строк для Table1 и несколько строк для Table2).
Мой конкретный вопрос: есть ли индекс или отказаться от него? Я провел некоторые измерения, чтобы индекс покрытия в Таблице 2 улучшил мои запросы SELECT, а некоторые довольно сильно, но, опять же, я должен рассмотреть плюсы и минусы, но мне действительно трудно принять решение.
Для Таблицы 1 может быть необязательно иметь индекс, потому что запросы SELECT там не так распространены.
Буду признателен за любые предложения, советы или просто хороший совет о том, что является хорошим решением. Кстати, я использую IBM DB2 версии 9.7 в качестве своей системы баз данных
Искренне
Mestika
1 ответ
Любой дополнительный индекс сделает ваши вставки медленнее и ваши запросы быстрее.
Чтобы принять разумное решение, вам необходимо точно измерить количество и объем данных, которые вы ожидаете увидеть. Если у вас есть несколько клиентов, обращающихся к базе данных одновременно, возможно, имеет смысл написать небольшое многопоточное приложение, которое имитирует максимальную нагрузку как для вставок, так и для запросов.
Ваши результаты будут зависеть от характера ваших данных и от используемого оборудования. Если вы хотите узнать наилучший ответ для своего варианта использования, вы не сможете точно протестировать свои данные и оборудование.
Тогда вам придется спросить себя:
Какая производительность запросов мне нужна?
Если производительность запроса достаточно высока без индекса, просто: не добавляйте индекс!
Какая производительность вставки мне нужна?
Может ли он опуститься ниже необходимого лимита с помощью дополнительного индекса? Если нет, просто: добавьте индекс!
Если вы обнаружите, что индекс абсолютно необходим для производительности запросов, и вы не можете получить требуемую производительность вставки с индексом, вам может потребоваться купить более качественное оборудование. Твердотельные диски могут творить чудеса для серверов баз данных, и они становятся доступными.
Если ваша система в любом случае работает нормально, не беспокойтесь, пусть она работает как есть.