اذهب إلى المحتوى
  • 0

مشكلة query تأخذ وقت طويل للتنفيذ مع زيادة حجم البيانات؟

mohammadgholeh

السؤال

السلام عليكم 

لدي مشكلة في query أنها تأخذ وقت طويل للتنفيذ كل ما زاد حجم البيانات في الجدول أريد المساعدة في تحسين الكود

تستخرج query جميع أنواع العملات وتقارن فرق بين سعر العملة بين اليوم وأمس 

أريد تحويل استخراج الفرق عند إضافة سجل جديد على الجدول يعني عند القيام بعملية insert

$rs = mysqli_query($con, "SELECT a.wdt_ID, a.item_type, a.selling_price, a.date_price 
                          FROM wpdatatable_21 a 
                          WHERE date_price IN (SELECT MAX(date_price) 
                                               FROM  wpdatatable_21 
                                               WHERE item_type=a.item_type
                                              ) 
                            and a.selling_price > 0 
                          GROUP BY item_type");


  while($row = mysqli_fetch_object($rs))
 {
    $rs2 = mysqli_query($con, "SELECT selling_price 
                               FROM wpdatatable_21 
                               WHERE item_type='".$row->item_type."' 
                                 AND date_price < '".$row->date_price."' 
                               order by date_price desc limit 1");

    if(mysqli_num_rows($rs2) > 0)
    {
        $row2 = mysqli_fetch_object($rs2);
        $price = $row2->selling_price;
    }
    else
    {
                    $price = 0;

    } 
   $dif=$row->selling_price - $price;

  if($dif > 0)
  {
    $status  = "up";
  }
  else if($dif < 0)
  {
   $status  = "down";
 }
 else if($dif == 0)
 {
  $status  ="fixed";
 }

$row->item_type;
$row->date_price;
$status;
$row->selling_price;

}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هل من الممكن توضيح بنية الجدول wpdatatable_21 أي ذكر حقوله (مع أنواعها) ؟

أمر آخر. ما هي وظيفة هذه الأسطر في آخر حلقة while:

$row->item_type;
$row->date_price;
$status;
$row->selling_price;
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
SELECT a.wdt_ID, a.item_type, a.selling_price, a.date_price 
                          FROM wpdatatable_21 a 
                          WHERE date_price IN (SELECT MAX(date_price) 
                                               FROM  wpdatatable_21 
                                               WHERE item_type=a.item_type
                                              ) 
                            and a.selling_price > 0 
                          GROUP BY item_type

هل أنت متأكد أنّ هذه التعليمة تعمل. أعتقد أنّها يجب ألّا تعمل!

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...