ขำคำแนะนำในการselect ข้อมูลหลายหมื่น record หน่อยค่ะ คือselect และวให้ php คำนวน กับ คำนวนผ่านคำสั่ง sql ใน mysql เลย อันใหนจะดีและเร็วกว่ากันคะ
อันที่จริงข้อมูลที่เยอะ ๆ ไม่ควร Query บ่อยครับ ทางเลือกน่าจะเป็นที่ 2 ครับ คือ คำนวณเสร็จก็เก็บไว้อีก table หนึ่งที่ข้อมูลน้อยครับ
Date :
2012-05-24 16:57:21
By :
mr.win
แนะนำควณนวนก่อนดีกว่าครับ เพราะข้อมูลเยอะ query อาจจะ error ได้ครับ
Date :
2012-05-25 11:51:21
By :
keng_ds
8,000,000 record ถ้า Query มาทั้งหมดจะใช้เวลานานมาก
แค่ 10000 ก็เริ่มช้าแล้ว
ใส่เงื่อนไขการ query ไปกับ คำสั่ง SQL ดีที่สุด
Date :
2012-05-25 11:58:26
By :
rootElement@kmutnb
ขอถามอีกอย่างนะคะ ข้อมูล 10000 record ใช้เวลาในการ select นานมากใหมคะ พอดีในเครื่องserver นานมาก แต่ถ้ารันในเครื่องเราเองนี้ไม่เท่าใหร่ค่ะ เลยอยากรู้ว่าปกติแล้ว 10000 record ใฃ้เวลาประมาณแค่ใหนคะ
Date :
2012-05-25 13:23:23
By :
tai_kook
ที่เครื่องเราเร็วเพราะว่าในการ Query แล้วนำมาแสดงผมนั้นมันใกล้กันมากๆ
แต่ถ้า server ด้วย ประสิทธิภาพของแต่ละ server ไม่เท่ากัน
และการโอนถ่ายข้อมูลทาง Internet จึงทำให้ช้าลงมามาก
ในเครื่องเรา หรือวงแลนเดียวกัน เหมือนการขนของจากมุมห้องหนึ่งไปอีกมุม
client - server ก็เหมือนการส่งของจากกรุงเทพไปเชียงใหม่
ด้วยระยะทาง และ สภาพ ถนน เลยทำให้ระยะเวลาต่างกัน
ที่ถามว่านานแค่ไหน อันนี้ก็ตอบไม่ได้ ขึ้นอยู่กับ
สภาพของ Server
Internet
แล้วก็จำนวนการใช้งานในช่วงนั้นๆ
Date :
2012-05-25 13:39:17
By :
rootElement@kmutnb
ถ้าข้อมูลมีเยอะ
หลีกเลี่ยงการใช้ select * ให้ select โดยระบุเฉพาะ field ที่ต้องการ
การแสดงผลข้อมูลเยอะๆ ให้ใช้ การแบ่งหน้าเอา ( ลองคิดถึงข้อมูล 10000 record ใน 1 หน้า ใครๆก็ไม่อยากดู)
ใน MySQL ใช้ limit ได้ ถ้า Oracle ใช้ limit ไม่ได้ต้องใช้ sub Query เอาครับ
Date :
2012-05-25 13:44:41
By :
rootElement@kmutnb
คือมันจำเป็นต้องselect เป็นหมื่น record ค่ะ เพราะข้อมูลเป็นการสรุปทุกวัน ไม่สามารถหลีกเลี่ยงได้เลย แต่ในการนำมาแสดงผลนั้น นำมาเพียงแค่ 1 record จากข้องมูลจำนวนมาก คือเอาทั้งวันมาคำนวนก่อนก่อน หลังจากคำนวนเสร็จจะเลือกอันที่น้อยที่สุด ในแต่ละวัน ประมาณนี้ค่ะ
Date :
2012-05-26 13:41:24
By :
tai_kook
Load balance : Server 01