Должен ли я добавлять индекс базы данных для каждого поля, в котором я использую поиск? - PullRequest
2 голосов
/ 10 октября 2010

У меня довольно много полей в нескольких разных моделях, по которым я выполняю поиск с использованием Model.find_by_xxx

Должен ли я добавлять индекс базы данных для каждого поля, в котором я использую find?

Ответы [ 2 ]

1 голос
/ 10 октября 2010

Да, наверное.Стоимость индекса заключается в том, что операторы вставки / обновления / удаления работают медленнее, поскольку теперь им также необходимо изменить индекс.Чем больше индексов в таблице, тем больше времени требуется для операций вставки / обновления / удаления.Так что, если вы в основном просто читаете данные, тогда индексы - явный выигрыш.

Другим недостатком множества индексов является дисковое пространство.Вы в основном делаете еще одну копию этого столбца для индекса.Но обычно это вторичное соображение.

0 голосов
/ 11 октября 2010

Не обязательно ... это зависит. Сколько строк вы ожидаете иметь в каждой таблице? Как часто они обновляются? Сколько полей в каждой таблице вы ищете? Вероятно ли, что база данных будет использоваться главным образом для отчетности или в основном как часть оперативной системы ввода данных?

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