N بايت (وليست محارف ولا نقاط ترميز).
للتصريح عن عمود من النوع FixedString، استخدم الصيغة التالية:
N عدد طبيعي.
يكون النوع FixedString فعّالًا عندما يكون طول البيانات N بايتًا بالضبط. وفي جميع الحالات الأخرى، يُرجَّح أن يؤدي إلى انخفاض الكفاءة.
أمثلة على القيم التي يمكن تخزينها بكفاءة في الأعمدة من النوع FixedString:
- التمثيل الثنائي لعناوين IP (
FixedString(16)لعناوين IPv6). - رموز اللغات (ru_RU, en_US, …).
- رموز العملات (USD, RUB, …).
- التمثيل الثنائي لقيم hash (
FixedString(16)لـ MD5، وFixedString(32)لـ SHA256).
- يُكمل السلسلة النصية ببايتات null إذا كانت السلسلة تحتوي على أقل من
Nبايت. - يُصدر الاستثناء
Too large value for FixedString(N)إذا كانت السلسلة تحتوي على أكثر منNبايت.
FixedString(2):
FixedString(N) ثابت. تُرجع الدالة length القيمة N حتى إذا كانت قيمة FixedString(N) مملوءة فقط ببايتات فارغة، لكن الدالة empty تُرجع 1 في هذه الحالة.
يؤدي تحديد البيانات باستخدام بند WHERE إلى نتائج مختلفة بحسب كيفية تحديد الشرط:
- إذا استُخدم عامل المساواة
=أو==أو الدالةequals، فإن ClickHouse لا يأخذ المحرف\0في الاعتبار، أي إن الاستعلامينSELECT * FROM FixedStringTable WHERE name = 'a';وSELECT * FROM FixedStringTable WHERE name = 'a\0';يُرجعان النتيجة نفسها. - إذا استُخدم بند
LIKE، فإن ClickHouse يأخذ المحرف\0في الاعتبار، لذا قد يلزم تحديد المحرف\0صراحةً في شرط التصفية.