کوئری بهینه

پرسیده شده
فعالیت 1224 روز پیش
دیده شده 584 بار
0

سلام 

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

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

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)

 

 

 

فایل پیوست

amir tavakolian
amir tavakolian

7 دی 99

1
حذف شده

سلام و احترام

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

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

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

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

فایل پیوست

امیر صالحی

توسط

امیر صالحی

8 دی 99

0
حذف شده

سلام و احترام 

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

فایل پیوست

امیر صالحی

توسط

امیر صالحی

8 دی 99

1
حذف شده

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

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

 

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

فایل پیوست

amir tavakolian

توسط

amir tavakolian

8 دی 99

حذف شده
سلام و احترام، خواهش میکنم انجام وظیفه بود. معمولا این مشکل کد زدن با php خام وجود داره چون کلا کوئری های join علاوه بر مزایایی که داره، در مواقعی که کوئری سنگین بشه و داده ها هم زیاد باشه باعث میشه روی دیتابیس فشار زیادی بیاد و حتی دیتابیسو از دسترس خارج بکنه. توی فریم های php مثل لاراول راه کار های بهینه ای وجود داره که شما میتونید استفاده کنید. از mysql view هم میشه استفاده کرد در صورتی که داده های شما خیلی خیلی زیاد نباشه اگه زیاد باشه میتونید از materials view هم استفاده کنید که بهینه تره.
حذف شده
خیلی ممنونم مرسی از توضیحات کاملی که دادین
amir tavakolian

9 دی 99

حذف شده
قربان شما، انجام وظیفه بود