ClickHouse/docs/fr/sql-reference/statements/select/prewhere.md
Ivan Blinkov cd14f9ebcb
SQL reference refactoring (#10857)
* 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
2020-05-15 07:34:54 +03:00

2.0 KiB

machine_translated machine_translated_rev
true 72537a2d52

Clause PREWHERE

Prewhere est une optimisation pour appliquer le filtrage plus efficacement. Il est activé par défaut, même si PREWHERE la clause n'est pas explicitement spécifié. Il fonctionne en déplaçant automatiquement une partie de WHERE condition à prewhere étape. Le rôle de PREWHERE la clause est seulement pour contrôler cette optimisation si vous pensez que vous savez comment le faire mieux que par défaut.

Avec l'optimisation prewhere, au début, seules les colonnes nécessaires à l'exécution de l'expression prewhere sont lues. Ensuite, les autres colonnes sont lues qui sont nécessaires pour exécuter le reste de la requête, mais seulement les blocs où l'expression prewhere est “true” au moins pour certaines lignes. S'il y a beaucoup de blocs où prewhere expression est “false” pour toutes les lignes et prewhere a besoin de moins de colonnes que les autres parties de la requête, cela permet souvent de lire beaucoup moins de données à partir du disque pour l'exécution de la requête.

Contrôle Manuel De Prewhere

La clause a le même sens que la WHERE clause. La différence est dans laquelle les données sont lues à partir de la table. Quand à commander manuellement PREWHERE pour les conditions de filtration qui sont utilisées par une minorité des colonnes de la requête, mais qui fournissent une filtration de données forte. Cela réduit le volume de données à lire.

Une requête peut spécifier simultanément PREWHERE et WHERE. Dans ce cas, PREWHERE précéder WHERE.

Si l' optimize_move_to_prewhere le paramètre est défini sur 0, heuristiques pour déplacer automatiquement des parties d'expressions WHERE de PREWHERE sont désactivés.

Limitation

PREWHERE est uniquement pris en charge par les tables *MergeTree famille.