19 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | d734a8e46d |
59 | محدودیت در پیچیدگی پرس و جو |
محدودیت در پیچیدگی پرس و جو
محدودیت در پیچیدگی پرس و جو بخشی از تنظیمات.
برای اجرای امن تر از رابط کاربر استفاده می شود.
تقریبا تمام محدودیت ها فقط برای اعمال SELECT
. برای پردازش پرس و جو توزیع, محدودیت بر روی هر سرور به طور جداگانه اعمال.
خانه را کلیک کنید چک محدودیت برای قطعات داده, نه برای هر سطر. این بدان معنی است که شما می توانید ارزش محدودیت با اندازه بخش داده ها تجاوز.
محدودیت در “maximum amount of something” می توانید مقدار را 0, که به معنی “unrestricted”.
اکثر محدودیت ها نیز دارند ‘overflow_mode’ محیط, به این معنی چه باید بکنید هنگامی که از حد فراتر رفته است.
این می تواند یکی از دو مقدار را: throw
یا break
. محدودیت در تجمع (کد _شورت_فلو_وشه گروه) نیز ارزش داشته باشد any
.
throw
– Throw an exception (default).
break
– Stop executing the query and return the partial result, as if the source data ran out.
any (only for group_by_overflow_mode)
– Continuing aggregation for the keys that got into the set, but don't add new keys to the set.
_کاساژ بیشینه
حداکثر مقدار رم برای استفاده برای اجرای پرس و جو بر روی یک سرور واحد.
در فایل پیکربندی پیش فرض, حداکثر است 10 گیگابایت.
تنظیم می کند حجم حافظه در دسترس و یا حجم کل حافظه بر روی دستگاه در نظر نمی.
محدودیت شامل یک پرس و جو تنها در یک سرور.
شما می توانید استفاده کنید SHOW PROCESSLIST
برای دیدن مصرف حافظه فعلی برای هر پرس و جو.
بعلاوه, مصرف حافظه اوج برای هر پرس و جو ردیابی و نوشته شده به ورود به سیستم.
استفاده از حافظه برای ایالت های توابع مجموع خاص نظارت نیست.
استفاده از حافظه به طور کامل برای ایالت ها از توابع کل ردیابی نیست min
, max
, any
, anyLast
, argMin
, argMax
از String
و Array
بحث کردن.
مصرف حافظه نیز توسط پارامترها محدود شده است max_memory_usage_for_user
و max_memory_usage_for_all_queries
.
_شمارهگیر بیشینه
حداکثر مقدار رم برای استفاده برای اجرای نمایش داده شد کاربر بر روی یک سرور واحد.
مقادیر پیش فرض در تعریف تنظیمات.ه. به طور پیش فرض مقدار محدود نمی شود (max_memory_usage_for_user = 0
).
همچنین نگاه کنید به شرح _کاساژ بیشینه.
_شیشه بخاطر _خروج
حداکثر مقدار رم برای استفاده برای اجرای تمام نمایش داده شد بر روی یک سرور واحد.
مقادیر پیش فرض در تعریف تنظیمات.ه. به طور پیش فرض مقدار محدود نمی شود (max_memory_usage_for_all_queries = 0
).
همچنین نگاه کنید به شرح _کاساژ بیشینه.
_گذرواژههای _ورود
محدودیت های زیر را می توان در هر بلوک بررسی (به جای در هر سطر). به این معنا که, محدودیت را می توان شکسته کمی. هنگامی که در حال اجرا یک پرس و جو در موضوعات مختلف, محدودیت های زیر به هر موضوع اعمال می شود به طور جداگانه.
حداکثر تعداد ردیف است که می تواند از یک جدول زمانی که در حال اجرا یک پرس و جو به عنوان خوانده شده.
_مخفی کردن
حداکثر تعداد بایت (داده های غیر فشرده) است که می تواند از یک جدول به عنوان خوانده شده در هنگام اجرای یک پرس و جو.
_ورود به سیستم
چه باید بکنید هنگامی که حجم داده ها به عنوان خوانده شده بیش از یکی از محدودیت های: ‘throw’ یا ‘break’. به طور پیش فرض, پرتاب.
_رو_تو_گروهها
حداکثر تعداد کلید منحصر به فرد دریافت شده از تجمع. این تنظیم به شما امکان مصرف حافظه محدود در هنگام جمع.
_شماره _شماره گروه
چه باید بکنید هنگامی که تعدادی از کلید های منحصر به فرد برای تجمع بیش از حد: ‘throw’, ‘break’ یا ‘any’. به طور پیش فرض, پرتاب. با استفاده از ‘any’ ارزش شما اجازه می دهد یک تقریب از گروه های اجرا. کیفیت این تقریب بستگی به ماهیت استاتیک داده ها دارد.
ا_فزون_بر_گونهی_گونهی زیر_گروهها
فعالسازی یا غیرفعالسازی اعدام GROUP BY
بند در حافظه خارجی. ببینید گروه در حافظه خارجی.
مقادیر ممکن:
- حداکثر حجم رم (به بایت) است که می تواند توسط تک استفاده می شود GROUP BY عمل
- 0 —
GROUP BY
در حافظه خارجی غیر فعال.
مقدار پیش فرض: 0.
_شماره بیشینه
حداکثر تعداد ردیف قبل از مرتب سازی. این اجازه می دهد تا شما را به محدود کردن مصرف حافظه در هنگام مرتب سازی.
ا_سلایدی
حداکثر تعداد بایت قبل از مرتب سازی.
کد_و_وشهیابی
چه باید بکنید اگر تعداد ردیف قبل از مرتب سازی دریافت بیش از یکی از محدودیت: ‘throw’ یا ‘break’. به طور پیش فرض, پرتاب.
بارشهای بیشینه
محدود در تعداد ردیف در نتیجه. همچنین برای زیرمجموعه بررسی, و بر روی سرور از راه دور در هنگام اجرای بخش هایی از یک پرس و جو توزیع.
حداکثر_زمین بایت
محدود در تعداد بایت در نتیجه. همان تنظیمات قبلی.
_شماره حاصل
چه باید بکنید اگر حجم نتیجه بیش از یکی از محدودیت های: ‘throw’ یا ‘break’. به طور پیش فرض, پرتاب.
با استفاده از ‘break’ شبیه به استفاده از حد است. Break
قطع اعدام تنها در سطح بلوک. این به این معنی است که مقدار ردیف بازگشت بیشتر از بارشهای بیشینه چندین ت_مایش بیشینه و بستگی دارد _مخفی کردن.
مثال:
SET max_threads = 3, max_block_size = 3333;
SET max_result_rows = 3334, result_overflow_mode = 'break';
SELECT *
FROM numbers_mt(100000)
FORMAT Null;
نتیجه:
6666 rows in set. ...
زمان _شنامهی حداکثر
حداکثر زمان اجرای پرس و جو در ثانیه. در این زمان برای یکی از مراحل مرتب سازی بررسی نمی شود و یا هنگام ادغام و نهایی کردن توابع کلی.
_شروع مجدد
چه باید بکنید اگر پرس و جو اجرا می شود بیش از ‘max_execution_time’: ‘throw’ یا ‘break’. به طور پیش فرض, پرتاب.
_شروع مجدد
سرعت اجرای حداقل در ردیف در هر ثانیه. بررسی در هر بلوک داده زمانی که ‘timeout_before_checking_execution_speed’ انقضا مییابد. اگر سرعت اجرای پایین تر است, یک استثنا پرتاب می شود.
ا_فزونهها
حداقل تعداد بایت اعدام در هر ثانیه. بررسی در هر بلوک داده زمانی که ‘timeout_before_checking_execution_speed’ انقضا مییابد. اگر سرعت اجرای پایین تر است, یک استثنا پرتاب می شود.
حداکثر_حاقسازی سرعت
حداکثر تعداد ردیف اعدام در هر ثانیه. بررسی در هر بلوک داده زمانی که ‘timeout_before_checking_execution_speed’ انقضا مییابد. اگر سرعت اجرای بالا است, سرعت اجرای کاهش خواهد یافت.
حداکثر_کشن_پیمایههای سرعت
حداکثر تعداد بایت اعدام در هر ثانیه. بررسی در هر بلوک داده زمانی که ‘timeout_before_checking_execution_speed’ انقضا مییابد. اگر سرعت اجرای بالا است, سرعت اجرای کاهش خواهد یافت.
جستجو
چک که سرعت اجرای بیش از حد کند نیست (کمتر از ‘min_execution_speed’), پس از زمان مشخص شده در ثانیه تمام شده است.
_رنگ _ورود
حداکثر تعداد ستون است که می تواند از یک جدول در یک پرس و جو به عنوان خوانده شده. اگر پرس و جو نیاز به خواندن تعداد بیشتری از ستون, این می اندازد یک استثنا.
_رنگ بیشینه
حداکثر تعداد ستون موقت است که باید در رم در همان زمان نگه داشته شود که در حال اجرا یک پرس و جو, از جمله ستون ثابت. اگر ستون موقت بیش از این وجود دارد, این یک استثنا می اندازد.
_رنگ
همان چیزی که به عنوان ‘max_temporary_columns’, اما بدون شمارش ستون ثابت. توجه داشته باشید که ستون های ثابت در حال اجرا یک پرس و جو نسبتا اغلب تشکیل, اما نیاز به حدود صفر منابع محاسباتی.
حداکثر
حداکثر عمق تودرتو از کارخانه های فرعی. اگر کارخانه های فرعی عمیق تر, یک استثنا پرتاب می شود. به طور پیش فرض, 100.
حداکثر _پیپیلین
حداکثر عمق خط لوله. مربوط به تعدادی از تحولات که هر بلوک داده می رود از طریق در طول پردازش پرس و جو. شمارش در محدوده یک سرور واحد. اگر عمق خط لوله بیشتر است, یک استثنا پرتاب می شود. به طور پیش فرض 1000.
_ص_خلاف
حداکثر عمق تودرتو از یک درخت نحوی پرس و جو. اگر بیش از, یک استثنا پرتاب می شود. در این زمان در تجزیه بررسی نمی شود اما تنها پس از تجزیه پرس و جو. به این معنا که, یک درخت نحوی است که بیش از حد عمیق می تواند در طول تجزیه ایجاد, اما پرس و جو شکست مواجه خواهد شد. به طور پیش فرض 1000.
_محلولات حداکثر
حداکثر تعداد عناصر در یک درخت نحوی پرس و جو. اگر بیش از, یک استثنا پرتاب می شود. در همان راه به عنوان تنظیمات قبلی تنها پس از تجزیه پرس و جو بررسی می شود. به طور پیش فرض 50000.
_رو_ تنظیم
حداکثر تعداد ردیف برای یک مجموعه داده ها در بند در ایجاد شده از یک خرده فروشی.
تنظیم _سریع
حداکثر تعداد بایت (داده های غیر فشرده) استفاده شده توسط یک مجموعه در بند در ایجاد شده از یک خرده فروشی.
_حالت تنظیم
چه باید بکنید هنگامی که مقدار داده ها بیش از یکی از محدودیت های: ‘throw’ یا ‘break’. به طور پیش فرض, پرتاب.
حوزه _کاربری مکس
حداکثر تعداد ردیف های مختلف در هنگام استفاده از متمایز.
مک_بتس_ حوزه
حداکثر تعداد بایت استفاده شده توسط یک جدول هش در هنگام استفاده متمایز.
_شروع مجدد
چه باید بکنید هنگامی که مقدار داده ها بیش از یکی از محدودیت های: ‘throw’ یا ‘break’. به طور پیش فرض, پرتاب.
ترجمههای بیشینه
حداکثر تعداد ردیف است که می تواند به یک سرور از راه دور منتقل می شود و یا ذخیره شده در یک جدول موقت در هنگام استفاده از جهانی در.
ترجمههای بیشینه
حداکثر تعداد بایت (داده های غیر فشرده) است که می تواند به یک سرور از راه دور منتقل می شود و یا ذخیره شده در یک جدول موقت در هنگام استفاده از جهانی در.
_شروع مجدد
چه باید بکنید هنگامی که مقدار داده ها بیش از یکی از محدودیت های: ‘throw’ یا ‘break’. به طور پیش فرض, پرتاب.
_پاک کردن _روشن گرافیک
محدودیت تعداد ردیف در جدول هش استفاده شده است که در هنگام پیوستن به جداول.
این تنظیمات در مورد SELECT … JOIN عملیات و پیوستن موتور جدول.
اگر یک پرس و جو شامل چند می پیوندد, خانه چک این تنظیم برای هر نتیجه متوسط.
تاتر می توانید با اقدامات مختلف ادامه دهید زمانی که از حد رسیده است. استفاده از _شروع مجدد تنظیم برای انتخاب عمل.
مقادیر ممکن:
- عدد صحیح مثبت.
- 0 — Unlimited number of rows.
مقدار پیش فرض: 0.
_پویش همیشگی
محدودیت اندازه در بایت از جدول هش استفاده می شود در هنگام پیوستن به جداول.
این تنظیمات در مورد SELECT … JOIN عملیات و پیوستن به موتور جدول.
اگر پرس و جو شامل می پیوندد, کلیک چک این تنظیمات برای هر نتیجه متوسط.
تاتر می توانید با اقدامات مختلف ادامه دهید زمانی که از حد رسیده است. استفاده _شروع مجدد تنظیمات برای انتخاب عمل.
مقادیر ممکن:
- عدد صحیح مثبت.
- 0 — Memory control is disabled.
مقدار پیش فرض: 0.
_شروع مجدد
تعریف می کند که چه عمل کلیک انجام زمانی که هر یک از محدودیت های زیر ملحق رسیده است:
مقادیر ممکن:
THROW
— ClickHouse throws an exception and breaks operation.BREAK
— ClickHouse breaks operation and doesn't throw an exception.
مقدار پیشفرض: THROW
.
همچنین نگاه کنید
_مسدود کردن بیشینه
حداکثر تعداد پارتیشن در یک بلوک قرار داده شده را محدود می کند.
- عدد صحیح مثبت.
- 0 — Unlimited number of partitions.
مقدار پیش فرض: 100.
اطلاعات دقیق
هنگام قرار دادن داده ها, تاتر محاسبه تعداد پارتیشن در بلوک قرار داده. اگر تعداد پارتیشن ها بیش از max_partitions_per_insert_block
, خانه را کلیک می اندازد یک استثنا با متن زیر:
“Too many partitions for single INSERT block (more than” اطلاعات دقیق “). The limit is controlled by ‘max_partitions_per_insert_block’ setting. A large number of partitions is a common misconception. It will lead to severe negative performance impact, including slow server startup, slow INSERT queries and slow SELECT queries. Recommended total number of partitions for a table is under 1000..10000. Please note, that partitioning is not intended to speed up SELECT queries (ORDER BY key is sufficient to make range queries fast). Partitions are intended for data manipulation (DROP PARTITION, etc).”