Индексация MySQL - необязательные критерии поиска - PullRequest
1 голос
/ 12 марта 2012

"Сколько индексов я должен использовать?"Этот вопрос задавался обычно несколько раз, я знаю.Но я спрашиваю ответ, специфичный для моей структуры таблицы и целей запросов.

У меня есть таблица с около 60 столбцами.Я пишу SDK, который имеет функцию для извлечения данных на основе необязательных критериев поиска.Существует 10 столбцов, для которых пользователь может необязательно передавать значения (таким образом, пользователю могут потребоваться все записи для определенных username и clientTimestamp или все записи для определенного userID и т. Д.),Потенциально мы могли бы искать данные на основе до 10 столбцов.

Эта таблица будет запускать INSERTS почти так же часто, как SELECTS, и таблица обычно будет иметь где-то около 200-300K строк.Каждая строка содержит значительное количество данных (вероятно, около 0,5 МБ).

Было бы хорошей или плохой идеей иметь 10 индексов в этой таблице?

1 Ответ

0 голосов
/ 12 марта 2012

Простое руководство, которое может помочь вам принять решение. 1. Индексные столбцы с высокой селективностью.
2. Попробуйте нормализовать вашу таблицу (вы упомянули столбцы username и userid; если это не пользовательская таблица, здесь нет необходимости сохранять имя)
3. Если ваша система не абстрактная, это должен быть ряд параметров, которые используются чаще других. Прежде всего, убедитесь, что у вас есть индексы, которые поддерживают быстрый поиск результатов с такими параметрами.

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