MySQL 5.1 разделов - я должен удалить элемент индекса / ключа?
У меня есть таблица с несколькими индексами. Все они содержат определенный целочисленный столбец. Я перехожу на MySQL 5.1 и собираюсь разделить таблицу по этому столбцу.
Нужно ли мне сохранять этот столбец в качестве ключа в моих индексах, или я могу удалить его, так как разбиение будет обеспечивать эффективный поиск только в данных соответствующих ключей без необходимости указывать их в качестве ключа?
2 ответа
Поле раздела должно быть частью индекса, поэтому ответ таков: я хочу сохранить столбец разделения в моем индексе.
Разделение будет только разделять значения / диапазоны этого индекса на отдельные разделы в соответствии с тем, как вы его настроили. Вы по-прежнему хотели бы иметь индексы для этого столбца, чтобы индекс можно было использовать после сокращения разделов.
Имейте в виду, что количество разделов, которые вы можете иметь, оказывает большое влияние: если у вас есть целочисленный столбец, содержащий только 4 различных значения, вы можете создать 4 раздела, и индекс, скорее всего, не принесет вам большой пользы в зависимости от ваших запросов.
Если вы получили 10000 различных значений в вашем целочисленном столбце, вы достигнете системных ограничений, если попытаетесь создать 10k разделов - вам придется разделить на большие диапазоны (например, 0-1000,1001-2000 и т. Д.) В таком случае вы будет полезен индекс (опять же в зависимости от того, как вы запрашиваете таблицы)