کوئری های سنگین در دیتابیس
سلام دوستان
من سایت موزیک دارم و با سیستم نیوک راه اندازی شده
از چند روز پیش سایت خیلی سنگین بالا میومد تا اینکه از طرف پشتیبانی این تیکت رو دریافت کردم
نقل قول:
نوشته اصلی توسط
Abbaskh
با سلام
استحضار مي رساند که سرویس شما توسط اجرای کوئری های سنگین مای اس کیو ال به شدت باعث مشغول شدن سی پیو سرور شده است.
نمونه ای از کوئری اجرا شده در سرور
# Time: 130708 20:22:01
# User@Host: bir3dair_nuke[bir3dair_nuke] @ localhost []
# Query_time: 4.551233 Lock_time: 0.033144 Rows_sent: 760 Rows_examined: 760
use bir3dair_Nuke1;
SET timestamp=1373298721;
SELECT * FROM nuke_stories WHERE(ihome='0');
# Time: 130708 20:22:04
# User@Host: realmadi_dayi[realmadi_dayi] @ localhost []
# Query_time: 5.935580 Lock_time: 0.827456 Rows_sent: 34738 Rows_examined: 172804
زمان اجرا شدن کوئری های برنامه شما بسیار بالا است و این امر به شدت بر روی کارایی سرور تاثیر گذار می باشد . این مشکل میتواند مربوط به پلاگین های نصب شده بر روی برنامه شما، ویا حجم بالای دیتابیس شما باشد . بنابراین به شما پیشنهاد میکنیم که هرچه سریعتر این مشکل را با برنامه نویس خود مطرح کنید و در جهت رفع آن سریعا اقدامات لازم را انجام دهید.
با یکی از دوستان که تقریبا نیوک کار بود صحبت کردم ایشون گفتند تعداد مطالبت تو صفحه اول رو از 20 به 10 تا کاهش بده
من این کارو کردم ولی هنوز این مشکل پابرجاست
ممنون میشم راهنماییم کنید:53::53::53:
پاسخ : کوئری های سنگین در دیتابیس
دوست گرامی کار خاصی نمیتونید کنید چون اساس نیوک این فرم هستش و بقیه موارد به سرور بر میگیرده. تنها کاری که شما میتونید کنید این هستش که بوسیله برنامه نویسی کوئری های ارسال رو بهینه کنید که اونم احتمالا بهینه سازی شده است.. به هرحال فکر سرویس ثویتر باشید از نوع متن ایمیل هم به نظر میاد ساپورتر نت افراز هستش ..
پیروز باشید
پاسخ : کوئری های سنگین در دیتابیس
دیتابیس رو یه بار check optimize repair کنید.
روی نیوک کش فعال کنید.
یه کمی بهتر می شه ولی موقتیه
سایت وقتی سنگین شد باید از هاست اشتراکی خارج بشه و بره روی vps
پاسخ : کوئری های سنگین در دیتابیس
دستور
کد:
SELECT * FROM nuke_stories WHERE(ihome='0');
تمامی رکوردهای جدول nuke_stories رو برمیگردونه .
شما برو توی phpmyadmin ، روی دیتابیست کلیک کن ، اون بالا تب sql دستور زیر رو بنویس ، سپس جدولی که چاپ میشه رو ببین ، نشون میده چند تا رکورد دارید .
کد:
select ihome , count(*) as _count from nuke_stories group by ihome
پاسخ : کوئری های سنگین در دیتابیس
نقل قول:
نوشته اصلی توسط
rezaonline.net
دستور
کد:
SELECT * FROM nuke_stories WHERE(ihome='0');
تمامی رکوردهای جدول nuke_stories رو برمیگردونه .
شما برو توی phpmyadmin ، روی دیتابیست کلیک کن ، اون بالا تب sql دستور زیر رو بنویس ، سپس جدولی که چاپ میشه رو ببین ، نشون میده چند تا رکورد دارید .
کد:
select ihome , count(*) as _count from nuke_stories group by ihome
با این کار مشکلم حل میشه؟؟
پاسخ : کوئری های سنگین در دیتابیس
باید بیش از این کوئری ها رو آپتیمایز کنید .
در صورت نیاز از share mode استفاده کنید تا سرعت کوئری ها و حجم دیتای برگشتی نسبت به ایندکس موجود کاهش پیدا کنه .
این کوئری شما هم زیاد موردی نداره . حداکثر استفاده اش 170 هزار سطر بوده !
پاسخ : کوئری های سنگین در دیتابیس
نیوک برنامه نویسی بهینه سازی شده ای نداره در کل، پیشنهاد میکنم به وردپرس یا جوملا تبدیل کنید سایت رو، هرچه سایت بزرگتر بشه بعدا بیشتر به مشکل بر میخورید.
کد:
SELECT * FROM nuke_stories WHERE(ihome='0');
اگر index برای مقادیر ihome از بخش structure پس از انتخاب جدول nuke_stories در دیتابیس مربوطه در phpmyadmin ایجاد کنید کوئری ها سریعتر انجام خواهند گرفت.
پاسخ : کوئری های سنگین در دیتابیس
نقل قول:
نوشته اصلی توسط
abbaskh
با این کار مشکلم حل میشه؟؟
مشکل حل نمیشه ، فعلا ببنیم تعداد رکوردهاتون چقدره ، اگر تا 2000 رکورد هم بود پس مشکل از ضعیف بودن هاست هست که جوابگو نیست .
در غیر اینصورت باید یک کش روی اون کوئری انجام بشه در تایم مشخص .
همچنین حجم جدول nuke_stories رو هم بررسی کنید چون این کوئری ، کل اطلاعات این جدول را به شرط ihome=0 برمیگرداند .
فعلا دستور بالا را انجام دهید و نتیجه را گزارش دهید .
پاسخ : کوئری های سنگین در دیتابیس
سلام .
در کوئری اجرایی شما ، Select * رو داریم ، که به نوعی بد کوئری هستش . توضیحات مفصلتر رو با جستجو به دست بیارید .
در صورتی که دیتا در جداول شما زیاد هست ، توصیه بنده استفاده از کلاستر بندی و ایندکس گزاری مناسب هستش .
در اخر هم میتونید FTS رو روی جداول فعال کنید که برای جداول با دیتا بالا توصیه میشه .
این حداقل راهنمایی هایی بود که میشد انجام داد ، هرچند این موضوع ممکنه با همه اینها هم پابرجا باقی بمونه که دلیل اون وجود پارامترهای دیگه هستش .
موفق باشید .