Перейти к основному содержанию
Строка фиксированной длины размером N байт (не символов и не кодовых точек). Чтобы объявить столбец типа FixedString, используйте следующий синтаксис:
Где N — натуральное число. Тип FixedString эффективен, когда длина данных составляет ровно N байт. Во всех остальных случаях он, скорее всего, снижает производительность. Примеры значений, которые можно эффективно хранить в столбцах типа FixedString:
  • Двоичное представление IP-адресов (FixedString(16) для IPv6).
  • Коды языков (ru_RU, en_US … ).
  • Коды валют (USD, RUB … ).
  • Двоичное представление хешей (FixedString(16) для MD5, FixedString(32) для SHA256).
Для хранения значений UUID используйте тип данных UUID. При вставке данных ClickHouse:
  • Дополняет строку null-байтами, если строка содержит меньше N байт.
  • Генерирует исключение Too large value for FixedString(N), если строка содержит больше N байт.
Рассмотрим следующую таблицу с единственным столбцом FixedString(2):
Обратите внимание, что длина значения FixedString(N) постоянна. Функция length возвращает N, даже если значение FixedString(N) заполнено только null-байтами, однако функция empty в этом случае возвращает 1. При выборке данных с помощью предложения WHERE результаты могут различаться в зависимости от того, как задано условие:
  • Если используется оператор равенства = или == либо функция equals, ClickHouse не учитывает символ \0, то есть запросы SELECT * FROM FixedStringTable WHERE name = 'a'; и SELECT * FROM FixedStringTable WHERE name = 'a\0'; возвращают одинаковый результат.
  • Если используется предложение LIKE, ClickHouse учитывает символ \0, поэтому в условии фильтрации может потребоваться явно указать символ \0.
Последнее изменение 10 июня 2026 г.