راکت

تاخیر در دریافت از دیتابیس

9 پاسخ

سلام دوستان
وقت همگی بخیر

من کوئری در اسکریپتم دارم که با تاخیر های ۱۵ تا ۲۰ ثانیه ای پاسخ داده میشه از سمت دیتابیس که به صورت ایجکس درخواست میشه و کوئری زیر استفاده میکنم :

$statment = $conn->prepare("SELECT sets.* , users.fullname FROM sets INNER JOIN users ON sets.userid=users.userid ORDER BY `id` DESC LIMIT ۲۴ OFFSET :offset"); 

چه مشکلی در این دستور هست که تاخیر زیاد درخواست میشه ؟

ثبت پرسش جدید

پاسخ‌ها

9
Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@aliesarlak

ورژن mysql چند هست
چون من مورد خاصی نمیبینم

یه مقدار تاخیر به خاطر ایجکسش مشکلی نیست طبیعیه
اما نه 20 ثانیه!

علی سرلک
علی سرلک
@aliesarlak

@Alimotreb
mysqlnd 5.0.12-dev
رکوردهای جدول ها تقریبا ۲۰۰۰۰تا شده و توی تست که میگرفتم با حذف order by id desc درست میشه و سریعش اوکیه ،

اما وقتی میخوام جدیدترین ها رو درخواست کنم تاخیر میندازه

شاید پاسخ شما همین‌جا باشد

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام و درود

@aliesarlak

ورژن mysql اصلی هاست یا سرور منظوره
phpmyadmin رو باز کنید تو صفحه اصلی سمت راستش زده ورژن چند هست!

اگر 5 هست که به نظرم بروزش کنید
یا برید روی 5.7 یا برید روی mariaDB
سرعتتون برای همن پایین هست احتمال زیاد!
دستور order دلیلی بر افت سرعت نیست
کوئری های خیلی سنگین تر هست که زده میشه و مشکلی نداره
mysql رو بروز کنید حتما

علی سرلک
علی سرلک
@aliesarlak

سلام
@Alimotreb

ورژن 5.7.26 هستش

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@aliesarlak

احتمالا گاورنر روی سرور هست که محدودیت میزاره
یا منابعتون خیلی پایین هست !
و الا ایرادی در کد نیست

علی سرلک
علی سرلک
@aliesarlak

@Alimotreb
خیلی ممنونم که وقت گذاشتین ..

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

و اینکه میشه لطفا یه کوچولو بگین که چه کوئری باید برای ایجاد و استفاده ایندکس بزنم

--- چیزی که هستش اینه که وقتی اون کوئری رو فعال میکنم مصرف CPU سرور هم بشدت افزایش پیدا میکنه برای MYSQL

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@aliesarlak

ایندکس گذاری تاثیری روی اون 20 ثانیه نداره!
این 20 که میگید قطعا منابعتون خیلی پایین هست!

علی سرلک
علی سرلک
@aliesarlak

@Alimotreb
cpu دوازده هسته ای و رم ۳۲ گیگ هستش

وقتی کوئری اجرا بشه فول نمیشه استفاده و نهایت ۴ کور رو درگیر میکنه

در دقیقه حدود 100 رکورد روی هر جدول ثبت میشه که من نیاز دارم با inner join با ایجکس 10تا رکورد اخر رو از دوجدول مربوط کال کنم

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@aliesarlak

چیزی که گفتید :
--- چیزی که هستش اینه که وقتی اون کوئری رو فعال میکنم مصرف CPU سرور هم بشدت افزایش پیدا میکنه برای MYSQL

با اطلاعات منابعی که الان برای سرور دادید خیلی خیلی فرق داره
یه سرور با همچین منابعی باید خیلی کارایی بهتری داشته باشه

از نحوه کانفیگ سرور توضیحات دقیق تر بدید تا راهنمایی کنم

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام