2010-05-17 2 views
3

Сколько индексов является предпочтительным для одной таблицы в MySQL?Сколько индексов на таблицу базы данных?

У меня есть таблица company, где я ищу в основном для ID, state и category.

+1

Какие запросы вы будете использовать в этой таблице? вставить, переустановить, выбрать, удалить? –

+0

Более подробная информация поможет. Мы должны угадать, что идентификатор, вероятно, является вашим основным ключом, а не составным идентификатором и категорией (что вполне возможно). Если вы опубликуете схему, у нас будет лучшая идея. – wlangstroth

+0

Вы ищете «FOR» id, state, cat или ищете «BY» их. Для меня «FOR» означает, что они находятся в списке выбора. например Я ищу песни BY BY BY. BY находится в предложении where. –

ответ

5

На этот вопрос нет ни одного ответа: создайте столько индексов, чтобы сделать ваши запросы достаточно быстрыми и не более.

Вы должны балансировать различные вещи при принятии решения о том, что индекс:

  • Чем больше индексов у вас есть, тем медленнее вставка и обновления будут (потому что им нужно обновить все индексы)
  • Запросы по таблицам без соответствующего индекса могут быть очень медленными, если база данных должна выполнять сканирование таблицы
  • Некоторые столбцы не требуют индексов (например, столбец «gender», где единственным возможным значением является «M», или "F")

Для вашего конкретного сценария это похоже на три индекса: один на ID (если это первичный ключ, то он уже имеет неявный индекс), один по состоянию и один по категории, будет достаточным.

+0

Я сомневаюсь, что государство или категория будут полезны сами по себе. Но без мощности нет никакого способа узнать. Если они занимаются бизнесом во всех 50 (53) штатах, то, возможно, вы получите до 1-5% таблицы через эти индексы, но если это региональный бизнес, который занимается бизнесом в основном в 10 штатах, то он, вероятно, не будет достаточно низким фактор кластеризации. –

0

Нет «предпочтительного» количества индексов, все зависит от ваших запросов. В вашем примере вам потребуется не более трех индексов, один для ID, один для состояния и один для категории.

Смежные вопросы