Rails ActiveRecord Table Indexes - Когда их следует использовать? - PullRequest
3 голосов
/ 08 октября 2009

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

Должен быть размер таблицы, в которой неэффективно иметь индексы. Должно быть ограничение на количество индексов в таблице, или почему бы не добавить индекс в каждый столбец?

Любые ресурсы, которые вы можете предложить, будут очень полезны.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 08 октября 2009

почему бы не добавить индекс в каждый столбец

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

1 голос
/ 13 октября 2009

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

...