* 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
2.5 KiB
machine_translated | machine_translated_rev |
---|---|
true | 72537a2d52 |
در بند
در اینجا بهینه سازی برای اعمال فیلتر موثر تر است. این به طور پیش فرض حتی اگر فعال باشد PREWHERE
بند به صراحت مشخص نشده است. این به طور خودکار در حال حرکت بخشی از کار می کند WHERE شرط به مرحله قبل از کجا. نقش PREWHERE
بند تنها برای کنترل این بهینه سازی اگر شما فکر می کنم که شما می دانید که چگونه به انجام این کار بهتر از پیش فرض اتفاق می افتد است.
با prewhere بهینه سازی در ابتدا تنها ستون لازم برای اجرای prewhere بیان بخوانید. سپس ستون های دیگر خوانده می شوند که برای اجرای بقیه پرس و جو مورد نیاز است اما تنها بلوک هایی که بیان قبل از هر کجا است “true” حداقل برای برخی از ردیف. اگر بلوک های زیادی وجود دارد که بیان قبل از کجا است “false” برای تمام سطر و جایی نیاز ستون کمتر از سایر بخش های پرس و جو, این اغلب اجازه می دهد تا به خواندن اطلاعات بسیار کمتر از دیسک برای اجرای پرس و جو.
کنترل دستی
بند همان معنی به عنوان WHERE
بند بند. تفاوت در این است که داده ها از جدول خوانده می شوند. هنگامی که دستی کنترل می شود PREWHERE
برای شرایط فیلتراسیون که توسط اقلیتی از ستون ها در پرس و جو استفاده می شود, اما که فیلتراسیون داده های قوی. این باعث کاهش حجم داده ها به خواندن.
پرسوجو ممکن است همزمان مشخص شود PREWHERE
و WHERE
. در این مورد, PREWHERE
مقدمها WHERE
.
اگر optimize_move_to_prewhere
تنظیم تنظیم شده است به 0, اکتشافی به طور خودکار حرکت بخش هایی از عبارات از WHERE
به PREWHERE
غیرفعال می شوند.
محدودیت ها
PREWHERE
تنها با جداول از پشتیبانی *MergeTree
خانواده