Mutações on-the-fly
SELECT subsequentes retornam automaticamente os valores alterados. Quando as mutações on-the-fly não estão habilitadas, talvez seja necessário aguardar que suas mutações sejam aplicadas por um processo em segundo plano para que os valores alterados sejam exibidos.
As mutações on-the-fly podem ser habilitadas para tabelas da família MergeTree ativando a configuração em nível de consulta apply_mutations_on_fly.
Exemplo
SELECT:
SELECT agora retorna o resultado correto imediatamente, sem precisar esperar que as mutações sejam aplicadas:
Impacto no desempenho
SELECT. No entanto, observe que as mutações ainda são materializadas de forma assíncrona em segundo plano, o que é um processo pesado.
Se o número de mutações enviadas exceder constantemente, ao longo de algum intervalo de tempo, o número de mutações processadas em segundo plano, a fila de mutações não materializadas que precisam ser aplicadas continuará crescendo. Isso acabará degradando o desempenho das consultas SELECT.
Sugerimos habilitar a configuração apply_mutations_on_fly juntamente com outras configurações no nível de MergeTree, como number_of_mutations_to_throw e number_of_mutations_to_delay, para limitar o crescimento indefinido das mutações não materializadas.
Suporte a subconsultas e funções não determinísticas
mutations_max_literal_size_to_replace). Só há suporte para funções não determinísticas constantes (por exemplo, a função now()).
Esses comportamentos são controlados pelas seguintes configurações:
mutations_execute_nondeterministic_on_initiator- se verdadeiro, as funções não determinísticas são executadas na réplica iniciadora e substituídas como literais nas consultasUPDATEeDELETE. Valor padrão:false.mutations_execute_subqueries_on_initiator- se verdadeiro, as subconsultas escalares são executadas na réplica iniciadora e substituídas como literais nas consultasUPDATEeDELETE. Valor padrão:false.mutations_max_literal_size_to_replace- O tamanho máximo, em bytes, dos literais serializados a serem substituídos nas consultasUPDATEeDELETE. Valor padrão:16384(16 KiB).