สอบถามเรืองออกแบบ ฐานข้อมูล ครับ..ผมจะต้องจัดทำระบบ คลังสินค้า ซึ่งมีตัวแปรในการเข้าออก หลายตัวแป
คำถามพวกนี้ผมก็สนใจอยู่เหมือนกันน่ะ ไม่มีประสบการณ์ดึงข้อมูลมากๆเลย
แต่ถ้าในความคิดของคนแล้ว (ความคิดคอมนี้ไม่รู้คิดเหมือนกับคนเปล่า *.* )
- ข้อมูลยิ่งน้อยการแสดงยิ่งเร็ว
- ค้นหาจากตารางย่อยย่อมดีกว่าค้นหาจากตารางรวมกันเป็นก้อนๆ
- ค้นหาจากตารางสรุป ย่อมดีกว่าค้นหาตารางจากคำนวน sum count
ส่วนเรื่อง join นี้ไม่รู้ครับ แต่ผมจำเป็นต้องแยกตารางครับ ทำตาม database พื้นฐานเลย
- ข้อมูลซ้ำ ควรสร้างตารางต่างหาก
สุดท้ายแล้วผมก็ทำป่นๆกันไปดูกรณีอันไหนควรรวมเป็นก้อน ควร sum ควรทำสรุป
เรื่องนี้ต้องลองถามพี่วินจัดการกับตารางเว็บบอร์ด thaicreate ยังไง *.*
Date :
2010-01-18 11:51:20
By :
xbeginner01
ยังงัยพี่ๆ ก็ช่วยหน่อยนะครับ
คือระบบ คลังสินค้า ผมเคยทำมาแล้วครั้งหนึ่ง
เก็บข้อมูล เข้า-ออก 1 ตารางหลัก joy น้อยมาก เน้นการทำ index จูน mysql และสร้าง table view มันก็ใช้ได้ดีเลยนะครับ แต่ตอนนี้มันเริ่มช้าแล้วครับ ข้อมูลประมาณ 30000 รายการ ใช้เวลาการค้นหา 5 วินาที ผมว่านานไปนะครับ และเวลา update ข้อมูล จะรู้สึกว่าช้าไปมากเลย .....
พอดีมีโปรเจ็คใหม่มา ก็เลยคิดว่าจะออกแบบฐานข้อมูลใหม่เพื่อจะดีกว่าเดิม
ยังงัยพี่ๆ รบกวนแนะนำผมด้วยนะครับ....................
Date :
2010-01-18 12:07:49
By :
martman26
ขอขุดหน่อยนะครับ
Date :
2010-01-18 15:36:05
By :
martman26
ขุดครั้งสุดท้ายครับ ถ้ายังงัยก็คงลงมือทำเลยละกัน
เอาแบบ แยกตาราง ตามประเภท-เข้าออก มันจะเร็วกว่าเดิมมัยเนี้ย
สู้ๆๆ
Date :
2010-01-18 16:32:42
By :
martman26
เอาใจช่วยครับผม
ผมก็ทำระบบจองโรงแรมอยู่
เหอๆ
ปัญหามากมาย
ดีที่ได้ ไทยครีเอท พี่ๆในนี้ช่วยผมได้เยอะเลยครับ
Date :
2010-01-18 17:34:06
By :
gungrave
จาก No2 ที่บอกว่า 5วิ นี้ช้าเกินไปครับ
วันนี้ผมเลยยอมเสียเวลาทดสอบดู ลองทดลองกันจริงๆไปเลย
ผมมีอยู่ 5 ตารางมา join กันครับ
tb1 มี 26 record
tb2 มี 13 record
tb3 มี 10,000 record
tb4 มี 10,000 record
tb5 มี 129,987 record
ลองดูความสัมพันธ์จาก query ด้านล่าง
select *
from tb5
inner join tb4
on tb5.tb4_id=tb4.id
inner join tb3
on tb4.id=tb3.tb4_id
inner join tb2
on tb2.id=tb4.tb2_id
inner joint tb1
on tb1.id=tb4.tb1_id
where tb4.id=5112
ใช้เวลาเฉลี่ย 0.0009 วินาที
ถ้าลอง เลือกแค่ tb5
select * from tb5 where id=5112
ใช้เวลาเฉลี่ย 0.0005 วินาที
ซึ่งถ้าสร้างรวมข้อมูลจริงๆอยู่ใน tb5 อย่างน้อยต้องสร้าง 2-3 เท่าตัวที่มีอยู่ 2แสนกว่า records
เวลาใช้อาจเฉลี่ยจริงๆเท่ากับ join ก็ได้ หรืออาจจะช้ากว่าหรือน้อยกว่าเล็กน้อยเท่านั้นเอง
ถ้าลองเขียน
select * from tb1,tb2,tb3,tb4,tb5 where tb4.id=5112
ต้องรีเครื่องใหม่เลยครับ เครื่องแฮงไปเลย
Date :
2010-01-18 20:46:01
By :
xbeginner01
Load balance : Server 01