mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-10-19 15:01:03 +00:00
2.6 KiB
2.6 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | d734a8e46d |
45 | FixedString(N) |
Fixedstring
の固定長文字列 N
バイト(文字もコードポイントもない)。
の列を宣言するには FixedString
タイプ、次の構文を使用します:
<column_name> FixedString(N)
どこに N
自然数です。
その FixedString
型は、データの長さが正確である場合に効率的です N
バイト。 他のすべてのケースでは、効率を低下させる可能性があります。
効率的に格納できる値の例 FixedString
-型指定された列:
- IPアドレスのバイナリ表現 (
FixedString(16)
IPv6用)。 - Language codes (ru_RU, en_US … ).
- Currency codes (USD, RUB … ).
- ハッシュのバイナリ表現 (
FixedString(16)
MD5の場合,FixedString(32)
用SHA256)。
UUID値を格納するには、以下を使用します UUID データ型。
データを挿入するときは、clickhouse:
- 文字列が含まれていない場合、nullバイトの文字列を補完します
N
バイト。 - スロー
Too large value for FixedString(N)
る場合の例外の文字列です。N
バイトまでとなります。
データを選択するとき、clickhouseは文字列の末尾にあるnullバイトを削除しません。 を使用する場合 WHERE
この節では、nullバイトを手動で追加して、 FixedString
値。 次の例では、次の例を使用する方法を示します WHERE
との節 FixedString
.
のは、単一の次の表を考えてみましょう FixedString(2)
列:
┌─name──┐
│ b │
└───────┘
クエリ SELECT * FROM FixedStringTable WHERE a = 'b'
結果としてデータを返さない。 このフィルターパターンはnullバイトまでとなります。
SELECT * FROM FixedStringTable
WHERE a = 'b\0'
┌─a─┐
│ b │
└───┘
この動作は、mysqlとは異なります CHAR
タイプ(文字列は空白で埋められ、空白は出力用に削除されます)。
の長さに注意してください。 FixedString(N)
値が一定になります。 その 長さ 関数の戻り値 N
場合においても FixedString(N)
値はnullバイトでのみ入力されるが、 空 関数の戻り値 1
この場合。