N bytes (no caracteres ni puntos de código).
Para declarar una columna de tipo FixedString, use la siguiente sintaxis:
N es un número natural.
El tipo FixedString es eficiente cuando los datos tienen una longitud de exactamente N bytes. En cualquier otro caso, es probable que reduzca la eficiencia.
Ejemplos de valores que pueden almacenarse de forma eficiente en columnas de tipo FixedString:
- La representación binaria de direcciones IP (
FixedString(16)para IPv6). - Códigos de idioma (ru_RU, en_US, …).
- Códigos de divisa (USD, RUB, …).
- Representación binaria de hashes (
FixedString(16)para MD5,FixedString(32)para SHA256).
- Rellena una cadena con bytes nulos si la cadena contiene menos de
Nbytes. - Lanza la excepción
Too large value for FixedString(N)si la cadena contiene más deNbytes.
FixedString(2):
FixedString(N) es constante. La función length devuelve N incluso si el valor FixedString(N) está rellenado únicamente con bytes nulos, pero la función empty devuelve 1 en este caso.
Al seleccionar datos con la cláusula WHERE, el resultado varía según cómo se especifique la condición:
- Si se usa el operador de igualdad
=o==, o la funciónequals, ClickHouse no tiene en cuenta el carácter\0; es decir, las consultasSELECT * FROM FixedStringTable WHERE name = 'a';ySELECT * FROM FixedStringTable WHERE name = 'a\0';devuelven el mismo resultado. - Si se usa la cláusula
LIKE, ClickHouse sí tiene en cuenta el carácter\0, por lo que puede ser necesario especificar explícitamente el carácter\0en la condición de filtro.