разделение вашего индекса
main и delta является наиболее общепринятым, если вы можете легко идентифицировать новые / обновленные строки.
, если не split, может помочь вам переиндексировать множество «частей» одновременно.
с индексом 180M (случайным образом обновляемым), где у меня было в среднем 5K новых строк каждый час.
Мое решение было
22 частичных индекса (потому что 24 ядра всервер) 20 частичных индексов равно 2 "дельта" индексам
по сценарию Я вычисляю идентификатор начала и конца каждой части с этим правилом
последняя дельта = начало с первого идентификатора, созданного сегодня другой дельта = началоот первого идентификатора, созданного вчера, до первого идентификатора, созданного сегодня
для частичного индекса, он был основан на
- START position-1 * ((первый идентификатор создан вчера) / 20)
- END position * ((первый идентификатор создан вчера) / 20)
последняя дельта была перестроена за несколько секунд, 20 первый блок был построен за 10 минут
до, с монолитной версией полный индексбыл перестроен за 4 часа (но было только 90 м рядов и сфинкс 0,9,9)