GORAGOD.com

ความแตกต่างระหว่าง Primary Key และ Index ของ MySql

ในระบบฐานข้อมูลมีการทำดัชนีของฐานข้อมูล เพื่อช่วยให้การเข้าถึงข้อมูลรวมถึงการเรียงลำดับข้อมูล สามารถทำได้เร็วขึ้น ซึ่งเมื่อใดก็ตามเราทำการเรียงลำดับ หรือค้นหาข้อมูลที่เป็นดัชนี จะทำให้การประมวลผลฐานข้อมูลเร็วขึ้น

ลองดูคำจำกัดความของข้อมูลที่เกี่ยวข้องกับดัชนีของฐานข้อมูลกันก่อน
  • NOT NULL หมายถึงข้อมูลที่ต้องกำหนดค่าเสมอ (NULL ใช้แทนค่าที่ไม่ทราบข้อมูล ไม่ใช่ไม่มีข้อมูล)
  • UNIQUE หมายถึงข้อมูลที่มีได้เพียงหนึ่งเดียว ไม่สามารถมีค่าซ้ำกันได้ ฐานข้อมูลส่วนใหญ่ จะกำหนดให้เป็น NOT NULL ด้วย
  • Index หมายถึงข้อมูลที่จะถูกจัดทำดัชนี เพื่อให้การเข้าถึงข้อมูล เช่นการเรียงลำดับและการค้นหา ทำได้เร็วขึ้น ยกตัวอย่างง่ายๆเช่น ที่คั่นหนังสือ ทำให้เราสามารถเข้าถึงหน้าที่ต้องการได้เร็วกว่าการเปิดหาทีละหน้า
  • Primary Key คือข้อมูลที่เป็น UNIQUE, NOT NULL และ เป็น Index ด้วย ใช้เพื่อประโยชน์ในการค้นหาเช่นเดียวกับ Index และ ใช้สำหรับ เชื่อมต่อไปยังตารางอื่นๆเพื่อกำหนดความสัมพันธ์ระหว่างตาราง
ข้อแตกต่างระหว่าง Primary Key และ Index ก็คือ Primary Key จะมีได้เพียงคอลัมน์เดียวเท่านั้น และเนื่องจากมันอาจถูกใช้เพื่อเชื่อมความสัมพันธ์ระหว่างตารางด้วย มันจึงไม่สามารถมีค่าซ้ำกันได้เลย ในขณะที่ Index สามารถมีได้หลายคอมัลน์ในหนึ่งตาราง ดังนั้นในคอลัมน์อาจมีค่าซ้ำกันได้ โดยที่ข้อมูลใน Index อื่นๆของแถวนั้นๆจะต้องไม่ซ้ำกัน
 
Primary Key Index Index
1 AAA กกก
2 AAA ขขข
3 BBB คคค