رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بهینه کردن دستورات php و sql
#1
سلام
من امدم از این دستور sql استفاده کردم. و مشتریم بهم گفت که فشار زیادی به سرورش میاد:
SELECT `backlink`,`ip`,`zaman` FROM `jadval1` JOIN `jadval2` ON `jadval1`.ip=`jadval2`.meta_value WHERE zaman BETWEEN :az AND :ta  ORDER BY `id` DESC LIMIT :mo, :limit
بعد امدم کارهای زیر را انجام دادم:

1) به جای JOIN از RIGHT JOIN استفاده کردم.
2) برای زمان قبلاً تاریخ فارسی را در دیتابیس ثبت میکردم و بعد درش جستجو میکردم. امدم با تابع time() تاریخ را ثبت کردم. و از کد زیر استفاده کردم که تاریخ را تبدیل کنم و بعد در جدول تاریخ جستجو کنم:

 $azz = explode('/', $az);
 $az = jalali_to_gregorian($azz[0] , $azz[1] ,$azz[2] ,'-');
  $az = implode('-', $az);
$az= strtotime($az);

3) به جای LIMIT :mo, :limit از LIMIT :limit OFFSET :mo استفاده کردم.
ولی مشکل هنوز حل نشده.
طرف بهم گفته که در یکی از جداولش یک میلیون رکورد ثبت شده داره.
فکر میکنم این دستور هم که برای چاپ مقادیر داخل جدول هست هم بهینه نیست جاش چی رو پیشنهاد میدید؟
 $sth->execute();
 foreach($sth as $rowso){
	echo $rowso['ip'];
}
اگه پیشهادات دگه ای هم دارید بگید ممنونم.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان