PDA

View Full Version : سوال: بهینه کردن کوئری های سنگین



SlowCode
شنبه 03 اسفند 1392, 19:35 عصر
سلام
ما یه سایتی رو با جوملا راه انداختیم، پشتیبانی هاست یه پیغام اخطار داده و گفته که یکی از کوئری ها مصرف cpu زیادی داره:

SELECT a.id, a.filename, a.extl, a.description FROM
site_phocagallery AS a LEFT JOIN
site_phocagallery_img_votes_statistics AS r ON r.imgid = a.id WHERE
a.catid=26 AND a.published = 1 AND a.approved = 1 ORDER BY a.ordering
DESCG

گفتن که یا این کوئری رو اصلاح کنین یا اکانتتونو مسدود میکنیم!
دوستان راه حلی به ذهنتون میرسه؟

engmmrj
شنبه 03 اسفند 1392, 20:13 عصر
از cache استفاده کنید .

sadegh1362
شنبه 03 اسفند 1392, 21:01 عصر
سلام
این query در حال join left زدن به و بعد اون داره order by می زنه . خودش پروسس زیادیه اما نه انقدر که هاست گیر بده احتمالا داخل حلقه قرار نمی گیره هر بار این دستور اجرا بشه ؟

plague
دوشنبه 05 اسفند 1392, 13:22 عصر
کوئری سنگینی به نظر نمیاد
ساختار site_phocagallery_img_votes_statistics
به چه شکله و محتواش چیه ؟ آیا به ازای هر عکس در گالری فقط یک ردیف وجود داره در تیبل statics ؟

اگه به ssh دسترسی داره slow-query-log رو فعال کن تا کوئری های کند رو شناسایی کنی

shpegah
دوشنبه 05 اسفند 1392, 13:54 عصر
سلام
ما یه سایتی رو با جوملا راه انداختیم، پشتیبانی هاست یه پیغام اخطار داده و گفته که یکی از کوئری ها مصرف cpu زیادی داره:

SELECT a.id, a.filename, a.extl, a.description FROM
site_phocagallery AS a LEFT JOIN
site_phocagallery_img_votes_statistics AS r ON r.imgid = a.id WHERE
a.catid=26 AND a.published = 1 AND a.approved = 1 ORDER BY a.ordering
DESCG

گفتن که یا این کوئری رو اصلاح کنین یا اکانتتونو مسدود میکنیم!
دوستان راه حلی به ذهنتون میرسه؟

select این کوئری فقط داره از جدول اولی یعنی a استفاده میکنه بهتر نبود به جای استفاده از دوتا join از یک فیلد چک باکس استفاده میکردید؟