ผู้เขียน หัวข้อ: ขอเรียนความหมาย เรื่อง ดัชนี เวลาออกแบบตารางค่ะ  (อ่าน 845 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 2591
  • คนดีไม่เบ่ง คนเก่งไม่โม้ คนใหญ่โตไม่อวด
    • ดูรายละเอียด
    • อีเมล์
ขณะที่เราออกแบบตารางนั้น จะมีอยู่ช่องหนึ่งที่ระบุว่า " ใส่ดัชนี "
แล้วก็มีตัวเลือกอยู่สามตัวดังนี้ค่ะ

No
Yes (Duplicates OK)
Yes (No Duplicates)

หนูอยากทราบว่า เจ้าตัวเลือกทั้งสามนั้น มันมีความความหมายอย่างไรบ้าง
และเมื่อใดควรจะใช้ตัวเลือกไหน หากใช้ผิด แล้วจะเกิดผลเสียอย่างไรบ้างคะอาจารย์


เราสร้างดัชนี (index) เพื่อว่า เมื่อเราต้องการค้นหาเรคอร์ดด้วยฟิลด์นั้นจะทำให้การค้นหาทำได้เร็วที่สุด เช่นการค้นหาจากการกำหนด WHERE clause ใน SQL SELECT statement หรือจากการใช้ .SEEK method หรือ .FindFirst .FindLast method เป็นต้น เหตุเพราะค่าในฟิลด์ดัชนีจากเรคอร์ดต่างๆจะอยู่ในรูปแบบที่ถูกจัดเรียงข้อมูลตามลอจิคอล (logical) ไว้ให้แล้ว การค้นหาข้อมูลที่เรียงไว้แล้ว สามารถใช้อัลกอริธึมที่มีประสิทธิภาพในการค้นหาได้ ข้อมูลประมาณ 1 ล้านเรคอร์ดจะสามารถค้นหาเจอจากการค้นหาเพียงไม่เกิน 20 หรือ 21 ครั้งเท่านั้นเอง ... แต่ถ้าไ่ม่มีการทำดัชนี การค้นหาใดๆก็ต้องทำแบบ sequential search คือหาไปทีละเรคอร์ดจนกว่าจะพบ ถ้าเรคอร์ดที่เราต้องการเกิดไปอยู่ที่เรคอร์ดสุดท้ายพอดี ระบบก็ต้องควานอ่านไป 1 ล้านเรคอร์ดแหล่ะครับ

ดังนั้น

No ก็คือไม่ได้มีการสร้างดัชนีสำหรับฟิลด์นี้

Yes (No Duplicate) ก็คือมีการสร้างดัชนีไว้ และมีเพียงเรคอร์ดเดียวเท่านั้นที่จะมีค่านี้ได้

Yes (Duplicate OK) ก็คือมีการสร้างดัชนีไว้ และยอมให้มีค่าของฟิลด์ดัชนีนี้ ซ้ำกันมากกว่า 1 เรคอร์ดได้

แต่ถ้าต้องการสร้างดัชนีที่เป็นผลรวมของหลายๆฟิลด์เข้าด้วยกัน ก็ต้องไปเลือกใช้ Index Windows แทนนะครับ (เมนู View - Indexes)

หมายเหตุ : ฟิลด์ที่เป็น Primary Key จะถูกกำหนดเป็น No Duplicate Index ไปอย่างอัตโนมัติ แต่ในทางกลับกันไม่จำเป็น