2006/Mar/07

ตอนเรียนวิชา Database เวลาสร้าง Key สร้างแต่ Primary Key อย่างเดียว แทบไม่ได้สร้าง Key อื่นๆ และลืมไปบ้างแล้ว ว่าแต่ละ Key มีชื่อว่าอะไร จดไว้ก่อน กันลืม

ก่อนอื่นต้องเรียกศัพท์(ที่ลืมแล้ว)ให้ถูกต้องก่อน

Entity : เช่น นักศึกษา
Attribute : เป็นคุณสมบัติของ Entity เช่น ชื่อ, อายุ ใน Entity ของนักศึกษา
Tuple : Record ในแต่ละแถว

ต่อไปเรื่อง Key หละ

Primary Key : อันนี้ใช้่บ่อยเลยหละ จะแสดงค่าได้ไม่ซ้ำกัน แต่ใน 1 ตารางสามารถมี PK ได้หลายอัน เช่น

id1 | id2 | name |
----------------------
1 | 1 | joe |
1 | 2 | jjj |
----------------------

id1 และ id2 เป็น Key ร่วม

Foreign Key : เป็น Key ที่อ้างอิงไปยัง PK, UK ของ Table หนึ่ง
Unique Key : เหมือนกับ Primary Key แต่สามารถมีได้หลาย Column หรือสามารถกำหนดเป็น Null ได้ หรือ Foreign Key จากตารางอื่นสามารถเข้ามาอ้างอิงได้

อืม...พอทวนอีกครั้ง เหมือนไม่ค่อยมีอะไรเลยแฮะ เอาเถอะ บันทึกใส่ในนี้แล้ว จะได้ไม่ลืม

แต่สงสัยอยู่หลายอย่าง
เรื่องของ Index มันมีประโยชน์ยังไง?
การทำ Unique Key ไม่ใช่การทำ Index?
ถ้ามันใช่ ทำไม PhpMyAdmin ให้เลือกได้ทั้ง index และ Unique?

Comment

Comment:

Tweet


#2 by (64.255.180.52) At 2009-11-03 15:34,
index มีประโยชน์เมื่อคุณใช้ WHERE, JOIN หรือคำสั่งอื่น ๆ ที่มีการเปรียบเทียบข้อมูลในฟิลด์

การสร้าง index ให้กับตาราง ก็คือ การทำ hash table เอาไว้ล่วงหน้า เพื่อให้ในภายหลังจะสามารถ query ได้เร็วขึ้นครับ

ดังนั้น ถ้าเราต้อง query ข้อมูล 'ฟิลด์' หรือ 'กลุ่มของฟิลด์' บ่อย ๆ ก็ให้ทำ index เอาไว้ล่วงหน้าจะช่วยได้เยอะ

มีผลอย่างมากเมื่อฐานข้อมูลมีขนาดใหญ่

ลองเปิดคู่มือ MySQL หัวข้อ "How MySQL Uses Indexes" ดูนะครับ



ส่วน UNIQUE นี่ไม่รู้แฮะ ยังไม่เคยศึกษา ^^'
#1 by PaePae At 2006-03-07 02:07,