N bytes (nem caracteres nem pontos de código).
Para declarar uma coluna do tipo FixedString, use a seguinte sintaxe:
N é um número natural.
O tipo FixedString é eficiente quando os dados têm comprimento exato de N bytes. Em todos os outros casos, ele provavelmente reduz a eficiência.
Exemplos de valores que podem ser armazenados com eficiência em colunas do tipo FixedString:
- A representação binária de endereços IP (
FixedString(16)para IPv6). - Códigos de idioma (ru_RU, en_US, …).
- Códigos de moeda (USD, RUB, …).
- A representação binária de hashes (
FixedString(16)para MD5,FixedString(32)para SHA256).
- Completa uma string com bytes nulos se ela contiver menos de
Nbytes. - Lança a exceção
Too large value for FixedString(N)se a string contiver mais deNbytes.
FixedString(2):
FixedString(N) é constante. A função length retorna N mesmo que o valor FixedString(N) esteja preenchido apenas com bytes nulos, mas a função empty retorna 1 nesse caso.
A seleção de dados com a cláusula WHERE retorna resultados diferentes, dependendo de como a condição é especificada:
- Se forem usados o operador de igualdade
=ou==ou a funçãoequals, o ClickHouse não leva o caractere\0em consideração, ou seja, as consultasSELECT * FROM FixedStringTable WHERE name = 'a';eSELECT * FROM FixedStringTable WHERE name = 'a\0';retornam o mesmo resultado. - Se a cláusula
LIKEfor usada, o ClickHouse leva o caractere\0em consideração, portanto pode ser necessário especificar explicitamente o caractere\0na condição de filtro.