Logo fa.boatexistence.com

آیا متمایز بر عملکرد تأثیر می گذارد؟

فهرست مطالب:

آیا متمایز بر عملکرد تأثیر می گذارد؟
آیا متمایز بر عملکرد تأثیر می گذارد؟

تصویری: آیا متمایز بر عملکرد تأثیر می گذارد؟

تصویری: آیا متمایز بر عملکرد تأثیر می گذارد؟
تصویری: پاسخ به سوالات شما در مورد خودارضایی 2024, ممکن است
Anonim

بله، زیرا استفاده از DISTINCT (گاهی اوقات طبق یک نظر) باعث می شود نتایج مرتب شوند مرتب سازی صدها رکورد زمان می برد. GROUP BY توسط تمام ستون های خود را امتحان کنید، گاهی اوقات می تواند بهینه ساز پرس و جو را به سمت انتخاب الگوریتم کارآمدتر سوق دهد (حداقل با Oracle من متوجه افزایش عملکرد قابل توجهی شدم).

آیا استفاده از متمایز بد است؟

خب، استفاده نادرست از "متمایز" نه تنها مشکل واقعی را پنهان می کند (ورودهای تکراری در جداول، عدم وجود شرط در بند on) همانطور که در بالا توضیح داده شد، بلکه عملکرد پرس و جو را کاهش می دهد… این باعث می شود هزینه IO (خوانش منطقی) پرس و جو به طور قابل توجهی افزایش یابد.

آیا متمایز پرس و جو را کندتر می کند؟

در حالت SELECT DISTINCT ممکن است تعداد کمی از پرس و جوها سریعتر عمل کنند و خیلی کمی در حالت SELECT DISTINCT کندتر عمل کنند (اما نه به طور قابل توجهی کندتر) اما برای حالت بعدی احتمال دارد که ممکن است برنامه نیاز به بررسی موارد تکراری داشته باشد، که بار عملکرد و پیچیدگی را به برنامه منتقل می کند.

آیا استفاده از متمایز بهتر است یا GROUP BY؟

در MySQL، DISTINCT کمی سریعتر از GROUP BY به نظر می رسد اگر theField ایندکس نشده باشد. DISTINCT فقط ردیف های تکراری را حذف می کند اما به نظر می رسد GROUP BY آنها را علاوه بر آن مرتب می کند.

چرا نباید از distinct در SQL استفاده کنیم؟

اگر انتخاب متمایز برای "رفع" یک مشکل وجود دارد، احتمالاً در ازای آن عملکرد بدی خواهید داشت. GROUP BY به شما امکان می دهد از توابع انبوهی مانند AVG، MAX، MIN، SUM و COUNT استفاده کنید. DISTINCT فقط موارد تکراری را حذف می کند.

توصیه شده: