ClickHouse/docs/es/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

1.9 KiB

machine_translated machine_translated_rev
true 72537a2d52

PREWHERE Cláusula

Prewhere es una optimización para aplicar el filtrado de manera más eficiente. Está habilitado de forma predeterminada incluso si PREWHERE cláusula no se especifica explícitamente. Funciona moviendo automáticamente parte de WHERE condición a la etapa prewhere. El papel de PREWHERE cláusula es sólo para controlar esta optimización si usted piensa que usted sabe cómo hacerlo mejor de lo que sucede por defecto.

Con la optimización prewhere, al principio solo se leen las columnas necesarias para ejecutar la expresión prewhere. Luego se leen las otras columnas que son necesarias para ejecutar el resto de la consulta, pero solo aquellos bloques donde está la expresión prewhere “true” al menos para algunas filas. Si hay muchos bloques donde la expresión prewhere es “false” para todas las filas y prewhere necesita menos columnas que otras partes de la consulta, esto a menudo permite leer muchos menos datos del disco para la ejecución de la consulta.

Control de Prewhere manualmente

La cláusula tiene el mismo significado que la WHERE clausula. La diferencia radica en qué datos se leen de la tabla. Al controlar manualmente PREWHERE para las condiciones de filtración utilizadas por una minoría de las columnas de la consulta, pero que proporcionan una filtración de datos segura. Esto reduce el volumen de datos a leer.

Una consulta puede especificar simultáneamente PREWHERE y WHERE. En este caso, PREWHERE preceder WHERE.

Si el optimize_move_to_prewhere se establece en 0, heurística para mover automáticamente partes de expresiones de WHERE a PREWHERE están deshabilitados.

Limitacion

PREWHERE sólo es compatible con tablas de la *MergeTree familia.