Clauses
IF NOT EXISTS
db_name existe déjà, ClickHouse ne crée pas de nouvelle base de données et :
- ne lève pas d’exception si la clause est spécifiée ;
- lève une exception si la clause n’est pas spécifiée.
ON CLUSTER
db_name sur tous les serveurs du cluster spécifié. Pour plus de détails, consultez l’article Distributed DDL.
ENGINE
COMMENT
Query
Response
PARAMÈTRES
lazy_load_tables
Atomic, Ordinary). Les vues, les vues matérialisées, les dictionnaires et les tables reposant sur des fonctions de table sont toujours chargés immédiatement, quel que soit ce paramètre.
Quand l’utiliser : Ce paramètre est utile pour les bases de données comportant un grand nombre de tables (des centaines ou des milliers), dont seul un sous-ensemble est réellement interrogé. Il réduit le temps de démarrage du serveur et l’utilisation de la mémoire en reportant la création des objets de moteur de table, l’inspection des data parts et l’initialisation des threads d’arrière-plan jusqu’au premier accès.
Impact sur system.tables :
- Avant le premier accès à une table,
system.tablesaffiche son moteur commeTableProxy. Après ce premier accès, il affiche le nom réel du moteur (par ex.MergeTree). - Les colonnes comme
total_rowsettotal_bytesrenvoientNULLpour les tables non chargées, car le stockage réel n’a pas encore été créé.
SELECT,INSERT,ALTER,DROPdéclenchent de manière transparente le chargement du moteur de table réel lors de la première utilisation.RENAME TABLEfonctionne sans déclencher de chargement.- Une fois une table chargée, elle le reste pendant toute la durée de vie du processus serveur.
- Les outils de supervision qui s’appuient sur les métadonnées de
system.tables(par ex.total_rows,engine) peuvent afficher des informations incomplètes pour les tables non chargées. - La première requête sur une table non chargée entraîne un coût de chargement ponctuel (analyse de l’instruction
CREATE TABLEstockée et initialisation du moteur).
0 (désactivé).