آیا افزودن شروط اضافی در WHERE تاثیر مثبت دارد یا منفی؟
سلام دوستان شاید برای شما هم به وجود اومده که وقتی در حال نوشتن یک کوئری هستید در بخش شرط گذاری میتونید یکسری شروط را بذارید یا نگذارید و در خروجی شما تاثیری نداره ولی آیا در سرعت و عملکرد SQL تاثیر داره یا نه رو نمیدونم. مثال میزنم تا واضح تر بشه .
تصور کنید شما جدولی به این شکل دارید
id |
parentid |
collectionid |
1 |
null |
1 |
2 |
1 |
1 |
3 |
null |
2 |
4 |
1 |
1 |
5 |
2 |
1 |
6 |
3 |
2 |
حالا با توجه به این اطلاعات اگه شما در شرط اینجوری بنویسی
Where parentid = 1
با اینکه اینجوری بنویسید
Where parentId = 1 And CollectionId = 1
خروجی هر دوتا یکسان هست و خلاف این هم هرگز رخ نمیده ولی از نظر sql کدوم بهتره یا اصلا فرقی نداره
پیشاپیش از اینکه علمتون را با دیگران به اشتراک میگذارید ممنونم :تشویق:
نقل قول: آیا افزودن شروط اضافی در WHERE تاثیر مثبت دارد یا منفی؟
سلام
البته اگر همیشه همه چیز همنطور ثابت باشد در جواب تفاوتی نمیکنه ولی شرط های زیر رو بررسی کنیم که ممکنه اتفاق بیوفته:
هر دو شرط زیر 2 ردیف نمایش میده
Where parentid = 1
Where parentId = 1 And CollectionId = 1
هر دو شرط زیر ردیف های یکسان نمایش نمیده
Where parentid = Null
Where parentId = Null And CollectionId = 1
ولی با توجه به اینکه در بررسی شرط ها قطعا توسط SQL باید اقداماتی انجام بشه، و با توجه به حجم اطلاعات درخواست شده از SQL، حتما در کارکرد SQL تاثیرگذار خواهد بود. البته بیشتر در جداول بسیار حجیم و کاربران متعدد این مورد بیشتر به چشم میاد. البته نظر اساتید SQL رو هم بدونید خیلی بهتره و من از نظر تجربه خودم گفتم
نقل قول: آیا افزودن شروط اضافی در WHERE تاثیر مثبت دارد یا منفی؟
نقل قول:
نوشته شده توسط
mmbguide
سلام
البته اگر همیشه همه چیز همنطور ثابت باشد در جواب تفاوتی نمیکنه ولی شرط های زیر رو بررسی کنیم که ممکنه اتفاق بیوفته:
هر دو شرط زیر 2 ردیف نمایش میده
Where parentid = 1
Where parentId = 1 And CollectionId = 1
هر دو شرط زیر ردیف های یکسان نمایش نمیده
Where parentid = Null
Where parentId = Null And CollectionId = 1
ولی با توجه به اینکه در بررسی شرط ها قطعا توسط SQL باید اقداماتی انجام بشه، و با توجه به حجم اطلاعات درخواست شده از SQL، حتما در کارکرد SQL تاثیرگذار خواهد بود. البته بیشتر در جداول بسیار حجیم و کاربران متعدد این مورد بیشتر به چشم میاد. البته نظر اساتید SQL رو هم بدونید خیلی بهتره و من از نظر تجربه خودم گفتم
ممنون از نظرت دوست عزیز، درسته شروط مختلف قطعا نتایج متفاوتی خواهد داشت، ولی مد نظر من دقیقا چیزی که گفتم بود، شروطی که بود و نبودشون فرقی نداره،
منتظر نظر دیگر دوستان هم هستم