PHP/MySQL join tables

รบกวนสอบถามครับ  ปกติผมเขียน PHP ดึงข้อมมูลจาก MySQL  ถ้าข้อมูลจะอยู่ใน Header/Detail table ผมก็จะใช้ JOIN ใน SQL statement แล้วก็ใช้ PHP loop จาก record set ที่ได้  แต่ทีนี้คนที่ดูแล server บอกว่าไม่ควรใช้ JOIN แต่ให้ใช้  select แยก table กัน แล้วเปรียบเทียบตัวแปรใน PHP แทนเขาบอกว่าการใช้ JOIN ทำให้ performance ของ server มีปัญหา   ถึงจะสร้าง INDEX ก็ไม่แก้ปัญหา

คำถามคือ
1. การใช้ JOIN ทำให้ server มีปัญหาเรื่อง performance ถึงขนาดไม่มีทางแก้เลยหรือครับ?
2. การเขียน PHP แบบ select แยก table  แล้วเปรียบเทียบตัวแปร  มันเป็นยังไงครับ?  ใครพอจะมีตัวอย่างให้ดูไหมครับ?  (ผมถามทางคนที่ดูแล server ไปแต่เข้ายังไม่ตอบ  ผมอยากรู้เร็วๆ ก็เลยมาถามในนี้ครับ)

อันนี้คือ code ตัวอย่างที่ผมใช้อยู่  ดึงข้อมูลจาก tblOrderDetail มาแสดง
ซึ่ง tblOrderDetail มีประมาณ 50,000 records  tblOrderHeader ประมาณ 10.000  tblProducts ประมาณ 500

 // Get Records
 $Query = "SELECT b.*, c.table_number, e.short_name, e.product_code, e.process_ID, a.order_type, a.guest_name
 FROM tblOrderDetail AS b
 INNER JOIN tblOrderHeader AS a ON a.order_ID = b.order_ID
 INNER JOIN tblProduct AS e ON b.product_ID = e.product_ID
 LEFT JOIN tblTable AS c ON a.table_ID = c.table_ID
 WHERE b.line_status = '" .ORDER_STATUS_COOKED . "' 
ORDER BY c.table_number, b.ordered_time;";

$OrderRS = $DB->selectRowsToArray($Query);

 $s = "";
if (count($OrderRS)) {
   foreach ($OrderRS as $OrderR) {
      $s .= '
   <div>'. $OrderR["table_number"] . ' ' . $OrderR["product_code"] . ' ' . $OrderR["short_name"] . ' ' . ($OrderR["quantity"]) . ' ' . $OrderR["line_status"] . '</div>';
   }
}

echo $s;

จาก code นี้  ถ้าเขียน select แบบแยก table มันจะเป็นยังไงครับ?
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่