как второе должно быть подмножеством первого.
У меня получилось, что OPTIMIZE table (без final) берёт 2-3 рандомных куска в обработку, если верить дебаг-выводу ((MergerMutator): Selected 2 parts). И после этого, даже после нескольких вызовов и выжидания удаления неактивных кусков, в таблице остаются дубли по ключу.
OPTIMIZE <table> partition id <id> берёт все ~8 кусков, относящиеся к партиции, и дубли внутри этой партиции сразу убирает.
optimize table просто инициация внеочередного мержа, оптимизирует какую-то одну партицию
Видимо, всегда не ту, которую надо :) Потому что так дубли не убирает.
В доке все написано про дубли и никогда. Естественно мержится партиция куда идут инсерты прямо сейчас, потому что в ней больше всего партов
Да в доке вообще много интересного написано. Только никогда не знаешь, где именно. Почему-то не в отдельной статье про OPTIMIZE. Спасибо.
потому что это имеет отношение к мержам engine ReplacingMT, а не к optimize
Обсуждают сегодня