У нас огромная таблица InnoDB с сотнями миллионов строк и всего 3 столбцами: GUID, enum, smallint.
Все поиски выполняются по GUID.
Мы рассматриваем создание GUID для PK и разбиение его по ключам.
Мы слышали, что использование GUID в качестве PK нецелесообразно из-за его случайного распределения и того факта, что PK создает кластерный индекс. Поэтому хранение строк в произвольном порядке идентификаторов GUID увеличивает фрагментацию и разбиение страниц.
Альтернативой использованию GUID в качестве PK является создание суррогатного ключа автоинкремента и его использование в качестве PK. Однако, если мы хотим разделить таблицу по GUID, этот GUID также должен быть частью PK. Кроме того, поскольку все запросы выполняются по GUID, нам нужен дополнительный индекс GUID.
Этот индекс по существу отображает GUID-> PK, в то время как если мы используем GUID в качестве PK - сама таблица отображает GUID-> enum + small int?
Итак, мой вопрос: можем ли мы получить что-нибудь, добавив auto-inc PK и получив дополнительный индекс GUID?
Спасибо,
Филопатор.