TIL: เวอร์ชันของ UUID และควรใช้เมื่อไร
(ntietz.com)-
UUID มีหลายเวอร์ชัน
- UUID Version 1 (v1): สร้างจากไทม์สแตมป์, ตัวนับแบบโมโนโทนิก และ MAC address
- UUID Version 2 (v2): สงวนไว้สำหรับ security ID รายละเอียดเชิงลึกไม่ค่อยเป็นที่ทราบกัน
- UUID Version 3 (v3): สร้างจากแฮช MD5 ของข้อมูลที่กำหนดไว้ โดยมีการเสนอให้ใช้ DNS และ URL เป็นข้อมูลตั้งต้น
- UUID Version 4 (v4): สร้างจากข้อมูลแบบสุ่มทั้งหมด เป็น UUID ที่คนส่วนใหญ่นึกถึง
- UUID Version 5 (v5): สร้างจากแฮช SHA1 ของข้อมูลที่กำหนดไว้ เช่นเดียวกับ v3 มีการเสนอ DNS และ URL เป็นข้อมูลตั้งต้น
- UUID Version 6 (v6): สร้างจากไทม์สแตมป์, ตัวนับแบบโมโนโทนิก และ MAC address ใช้ข้อมูลแบบเดียวกับ v1 แต่จัดลำดับใหม่เพื่อให้เรียงตามเวลาที่สร้างได้
- UUID Version 7 (v7): สร้างจากไทม์สแตมป์และข้อมูลแบบสุ่ม
- UUID Version 8 (v8): ปรับแต่งได้เองทั้งหมด (ยกเว้นฟิลด์ version/variant ที่บังคับไว้)
-
ควรใช้เมื่อไร
- v4: ใช้เมื่อต้องการ ID แบบสุ่ม เป็นตัวเลือกเริ่มต้นที่ดี
- v7: ใช้เมื่อจำเป็นต้องมีการเรียงลำดับ เช่น เหมาะกับการใช้เป็นคีย์ฐานข้อมูล
- v5 หรือ v8: ใช้เมื่อต้องการใส่ข้อมูลเฉพาะลงไปใน UUID ถ้าจำเป็นจริง คุณจะรู้เอง
-
คำอธิบายของเวอร์ชันอื่น ๆ
- v7 เป็นเวอร์ชันที่ปรับปรุงจาก v1 และ v6 ถ้าเป็นไปได้ควรใช้ v7 ดังนั้นโดยทั่วไปจึงไม่ค่อยใช้ v1 หรือ v6
- v2 ถูกสงวนไว้สำหรับงานด้านความปลอดภัย ถ้าคุณกำลังใช้อยู่ ก็มีโอกาสสูงที่คุณจะไม่สามารถรู้รายละเอียดได้มากนัก
- v3 ถูกแทนที่ด้วย v5 โดย v5 ใช้แฮชที่แข็งแรงกว่า
สรุปโดย GN⁺
- UUID มีหลายเวอร์ชัน และแต่ละเวอร์ชันถูกออกแบบมาสำหรับการใช้งานเฉพาะด้าน
- v4 และ v7 เป็นเวอร์ชันที่ถูกใช้งานบ่อยที่สุด ส่วน v5 และ v8 ใช้เมื่อมีความต้องการด้านข้อมูลเฉพาะ
- การเลือกเวอร์ชันของ UUID ขึ้นอยู่กับวัตถุประสงค์การใช้งาน โดยถ้าต้องการการเรียงลำดับควรใช้ v7 และถ้าต้องการ ID แบบสุ่มควรใช้ v4
- การเข้าใจ UUID เวอร์ชันต่าง ๆ จะช่วยให้เลือก UUID ที่เหมาะกับโปรเจ็กต์ได้
1 ความคิดเห็น
ความเห็นจาก Hacker News
UUID Version 2 (v2) ถูกสงวนไว้สำหรับ security ID และไม่ได้มีรายละเอียดที่เป็นที่รู้จักมากนัก
รายละเอียดของ UUID v2 หาได้ง่ายในเอกสาร RFC 9562
ไทม์สแตมป์ของ UUID v7 มีประโยชน์ในการค้นหาไฟล์เมตาดาต้าอย่างรวดเร็วใน Databend
อยากให้มีมาตรฐานสำหรับ UUID แบบสั้น
73WakrfVbNJBaAmhQtEeDvหรือbK7nP9xMเข้าใจจุดประสงค์ของ UUID2 ได้ยาก
UUID v4 เป็นเพียงตัวสร้างไบต์แบบสุ่ม
ไม่ควรใช้เวอร์ชันที่อิงกับ MAC
UUID ที่ใช้ข้อมูล SHA256 และตัวนับอาจมีประโยชน์
ควรใช้ v7
เป็นบทอ่านที่น่าสนใจ