* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
3.2 KiB
machine_translated | machine_translated_rev |
---|---|
true | 72537a2d52 |
De la Clause
Le FROM
clause spécifie la source à partir de laquelle lire les données:
- Table
- Sous-requête {##TODO: meilleur lien ##}
- Fonction de Table
JOIN et ARRAY JOIN les clauses peuvent également être utilisées pour étendre la fonctionnalité de la FROM
clause.
Subquery est un autre SELECT
requête qui peut être spécifié entre parenthèses à l'intérieur FROM
clause.
FROM
la clause peut contenir plusieurs sources de données, séparées par des virgules, ce qui équivaut à effectuer CROSS JOIN sur eux.
Modificateur FINAL
Lorsque FINAL
est spécifié, ClickHouse fusionne complètement les données avant de renvoyer le résultat et effectue ainsi toutes les transformations de données qui se produisent lors des fusions pour le moteur de table donné.
Il est applicable lors de la sélection de données à partir de tables qui utilisent MergeTree-la famille de moteurs (à l'exception de GraphiteMergeTree
). Également pris en charge pour:
- Répliqué les versions de
MergeTree
moteur. - Vue, Tampon, Distribué, et MaterializedView moteurs qui fonctionnent sur d'autres moteurs, à condition qu'ils aient été créés sur
MergeTree
-tables de moteur.
Inconvénient
Requêtes qui utilisent FINAL
sont exécutés pas aussi vite que les requêtes similaires qui ne le font pas, car:
- La requête est exécutée dans un seul thread et les données sont fusionnées lors de l'exécution de la requête.
- Les requêtes avec
FINAL
lire les colonnes de clé primaire en plus des colonnes spécifiées dans la requête.
Dans la plupart des cas, évitez d'utiliser FINAL
. L'approche commune consiste à utiliser différentes requêtes qui supposent les processus d'arrière-plan du MergeTree
le moteur n'est pas encore arrivé et y faire face en appliquant l'agrégation (par exemple, pour éliminer les doublons). {##TODO: exemples ##}
Détails De Mise En Œuvre
Si l' FROM
la clause est omise, les données seront lues à partir system.one
table.
Le system.one
table contient exactement une ligne (cette table remplit le même but que la table double trouvée dans d'autres SGBD).
Pour exécuter une requête, toutes les colonnes mentionnées dans la requête sont extraites de la table appropriée. Toutes les colonnes non nécessaires pour la requête externe sont rejetées des sous-requêtes.
Si une requête ne répertorie aucune colonne (par exemple, SELECT count() FROM t
), une colonne est extraite de la table de toute façon (la plus petite est préférée), afin de calculer le nombre de lignes.