ฉันใหม่กับ PostgreSQL และค่อนข้างใหม่สำหรับฐานข้อมูลโดยทั่วไป มีวิธีที่กำหนดไว้ว่าเราควรทำดัชนีค่าUUIDใน Postgres หรือไม่? ฉันแยกระหว่างการใช้การแฮชและการใช้คู่กรณีเว้นแต่ว่ามีบางอย่างในตัวที่ใช้โดยอัตโนมัติ สิ่งที่ฉันใช้คือการจัดการข้อมูลจำนวนมหาศาล
ดัชนี "text_ops" ตระกูลโอเปอเรเตอร์ SP-GiST ใช้ trie เนื่องจาก UUID นั้นค่อนข้างยาวและแตกต่างกันมากเสียงเหล่านี้น่าดึงดูดแม้ว่าฉันจะทำการค้นหาแบบเต็มเท่านั้น
นอกจากนี้ยังมีตัวเลือกแฮช Hashing คือ O (1) และฉันไม่จำเป็นต้องทำการเปรียบเทียบใด ๆ นอกเหนือจากความเท่าเทียมกันแน่นอน แต่เนื่องจาก UUID ค่อนข้างยาวฉันกลัวว่าการสร้างแฮชจากพวกเขาจะเสียเวลามาก
หรือสิ่งนี้ขึ้นอยู่กับระบบมากเกินไปและใช้เฉพาะหรือไม่
ฉันควรใช้bigserialในกรณีส่วนใหญ่ แต่ฉันถูกบอกให้ใช้uuidสำหรับเรื่องนี้ เราต้องการuuidเพราะเราอาจมีเซิร์ฟเวอร์หลายเครื่องที่ใช้ฐานข้อมูลที่แตกต่างกันดังนั้นจึงไม่มีการรับประกันว่าเราจะมี bigint ที่ไม่ซ้ำกัน เราสามารถใช้ลำดับที่แตกต่างกัน (และ seed) สำหรับแต่ละเซิร์ฟเวอร์ แต่ก็ยังไม่ยืดหยุ่นเท่ากับ UUID ตัวอย่างเช่นเราจะไม่สามารถโยกย้ายรายการฐานข้อมูลจากเซิร์ฟเวอร์หนึ่งไปยังเซิร์ฟเวอร์อื่นโดยไม่ต้องแปลง ID และการอ้างอิงของพวกเขาทุกที่