Обычно не делают пакетные UPDATE'ы. Делают много маленьких. Это дольше, но в больших системах никто не гарантирует strong consistency, всё к сводится к eventual.хотя даже при таких объемах и таких индексах селекты вообще не проблема, но вот пакетные апдейты, которые хоть как-то затрагивают один из индексов или пакетные удаления/вставки - жопа, а если изменение схемы затрагивающее индексы, то еще большая жопа
Пакетные я понимал в общем смысле. Много маленьких в одной транзакции сразу, один апдейт на много записей или много мелких в разных транзакциях, но за короткий промежуток времени. Проблема в том что мускуль не успевает перестраивать слишком жирный индекс, если сильно изменился, т.к. задача только для одного ядра и не параллелится. Т.е. технически все работает очень неплохо большую часть времени, но если нет никакого контроля над равномерностью вставок/апдейтов/удалений может случится нежданчик во время таких пиков что вся база становится раком если это часто используемая таблица и для селектовДелают много маленьких.
Так об этом я и писалВон Вурдалак советовал когда-то иметь обычный автоинкрементный примарный, а uuid - вторичный.
И вопрос былСамый минимальный вариант это примари индекс как число, а второй индекс по uuid.
Я то уже уже понял что там где хотел применить не совсем получится учитывая специфику - минусы перевешивают плюсы, для нового где можно юзать постгре или где не планируются большие объемы можно будет использовать UUID (т.к. плюсы очень приятны)Генерировать цифровой id в добавок к uuid - тогда зачем вообще uuid для данных типов сущностей?
А, если при этом автоинкрементный вообще никак не использовать - то получится что-то похожее на оракловский rowid или постгресовский with oids. Если проблема исключительно в длинных дополнительных индексах, то, да, вариантВон Вурдалак советовал когда-то иметь обычный автоинкрементный примарный, а uuid - вторичный.
По-моему, ты себе проблему упорно выдумываешь.и заставит переносить все на постгре вместо мускуля
`uuid` CHAR(36) NOT NULL CHARACTER SET ascii