🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ amir tavakolian
کوئری بهینه
امیر صالحی حل شده توسط امیر صالحی

سلام 

میخواستم اسامی افرادی که بالای ۵تا خرید رو داشتن رو از دیتابیس بگیرم 

به نظرتون این کوئری بهینه هست یا میشه بهترش کرد؟

select customerName from (select customers.customername, count(orders.CustomerID) as maximum from orders inner join customers on customers.CustomerID = orders.CustomerID group by (orders.CustomerID) having maximum > 5)

 

 

کوئری‌ها رو روی  دیتابیس orders و customers در لینک زیر اجرا میکنم

SQL Tryit Editor v۱.۶ (w۳schools.com)

 

 

 

سلام و احترام 

کوئریتون رو بررسی میکنم و بهتون همینجا اطلاع میدم

امیر صالحی ۰۸ دی ۱۳۹۹، ۱۴:۵۶

سلام و احترام

کوئریتون مناسب هستش، سعی کنید از joinها در جای مناسب و ضروری استفاده کنید تا فشار زیادی به دیتابیس نیاره.

میتونید از mysql view هم استفاده کنید تا داخل دیتابیستون اون چیزی که نیاز دارید رو برای شما به نمایش بزاره. برای مثال میتونید یک mysql view بنویسید که افرادی که بالایی 5 خرید داشتند رو به شما نمایش بده و شما مجبور نباشید که داخل کدتون کوئری سنگین بزنید.

mysql view میاد به شما یه سری داده نشون میده طبق کوئری که شما براش مشخص میکنید، (داده ای رو ذخیره نمیکنه و فقط وظیفه نمایش اون رو داره)

https://www.guru99.com/views.html

بهترین پاسخ
امیر صالحی ۰۸ دی ۱۳۹۹، ۱۷:۰۳

سلام خیلی ممنونم جناب صالحی لطف کردین

اینکه گفتین جای در جای مناسب و ضروری  از Join استفاده بشه؛ منظورتون چه موقع هست؟

 

به نظرتون mysql view میتونه جای join استفاده بشه ؟ 

amir tavakolian ۰۸ دی ۱۳۹۹، ۱۷:۵۹