البنود
IF NOT EXISTS
إذا كانت قاعدة البياناتdb_name موجودة بالفعل، فلن ينشئ ClickHouse قاعدة بيانات جديدة، ويحدث ما يلي:
- لا يطرح استثناءً إذا كان هذا البند محددًا.
- يطرح استثناءً إذا لم يكن هذا البند محددًا.
ON CLUSTER
ينشئ ClickHouse قاعدة البياناتdb_name على جميع خوادم المجموعة المحددة. لمزيد من التفاصيل، راجع مقالة Distributed DDL.
المحرك
يستخدم ClickHouse افتراضيًا محرك قاعدة البيانات Atomic الخاص به. كما تتوفر أيضًا محركات أخرى مثل MySQL، وPostgreSQL، وMaterializedPostgreSQL، وReplicated، وSQLite.تعليق
يمكنك إضافة تعليق إلى قاعدة البيانات عند إنشائها. تدعم جميع محركات قواعد البيانات التعليقات. الصياغةQuery
Response
SETTINGS
يمكن استخدام عبارةSETTINGS دون عبارة ENGINE، وعندها يُستخدم محرك قاعدة البيانات الافتراضي
(Atomic). ويمكن أن تتضمن إعدادات محرك قاعدة البيانات وإعدادات الاستعلام العادية معًا؛ حيث يُوجَّه كل
اسم إلى ما ينتمي إليه منهما.
disk
القرص المستخدم لتخزين ملفات البيانات الوصفية لجداول قاعدة البيانات. يمكن أن يحدّد اسم قرص من تهيئة الخادم، أو أن يُعرّف قرصًا مباشرةً عبر الدالةdisk، تمامًا كما يفعل الجدول المفرد:
Atomic، Ordinary). وفي حال عدم تحديده،
يُستخدم القرص المعرّف في إعداد الخادم database_disk.disk.
lazy_load_tables
عند تمكينه، لا تُحمَّل الجداول بالكامل أثناء بدء تشغيل قاعدة البيانات. وبدلًا من ذلك، يُنشأ وكيل خفيف الوزن لكل جدول، ويُنشأ محرك الجدول الفعلي ماديًا عند أول وصول إليه. يقلّل ذلك من وقت بدء التشغيل واستهلاك الذاكرة في قواعد البيانات التي تحتوي على عدد كبير من الجداول ولا يُستعلَم فعليًا إلا عن مجموعة فرعية منها.Atomic وOrdinary). تُحمَّل العروض، والعروض المادية، والقواميس، وجداول Alias، وجداول TimeSeries، والجداول المستندة إلى table functions دائمًا تحميلًا فوريًا بغضّ النظر عن هذا الإعداد.
متى يُستخدم: يفيد هذا الإعداد في قواعد البيانات التي تحتوي على عدد كبير من الجداول (بالمئات أو الآلاف)، ولا يُستعلَم فعليًا إلا عن مجموعة فرعية منها. ويقلّل وقت بدء تشغيل الخادم واستهلاك الذاكرة عبر تأجيل إنشاء كائنات محرك الجدول، وفحص data parts، وتهيئة خيوط الخلفية إلى حين أول وصول.
التأثير على system.tables:
- قبل الوصول إلى الجدول، يعرض
system.tablesمحركه على أنهTableProxy. وبعد أول وصول، يعرض اسم المحرك الحقيقي (مثلMergeTree). - تُرجِع الأعمدة مثل
total_rowsوtotal_bytesالقيمةNULLللجداول غير المحمّلة، لأن التخزين الفعلي لم يُنشأ بعد.
- تؤدي عمليات
SELECTوINSERTوALTERوDROPتلقائيًا إلى تحميل محرك الجدول الحقيقي عند أول استخدام. - تعمل
RENAME TABLEمن دون التسبّب في التحميل. - بعد تحميل الجدول، يظلّ محمّلًا طوال عمر عملية الخادم.
- قد تعرض أدوات المراقبة التي تعتمد على البيانات الوصفية في
system.tables(مثلtotal_rowsوengine) معلومات غير مكتملة للجداول غير المحمّلة. - يترتّب على أول query إلى جدول غير محمّل كلفة تحميل تُدفَع مرة واحدة (تحليل تعليمة
CREATE TABLEالمخزّنة وتهيئة المحرك).
0 (معطّل).