2
ฉันควรใช้ UUID เช่นเดียวกับ ID
ฉันใช้ UUID ในระบบของฉันมาระยะหนึ่งแล้วด้วยเหตุผลหลายประการตั้งแต่การบันทึกไปจนถึงความสัมพันธ์ที่ล่าช้า รูปแบบที่ฉันใช้เปลี่ยนไปเมื่อฉันไร้เดียงสาน้อยลงจาก: VARCHAR(255) VARCHAR(36) CHAR(36) BINARY(16) เมื่อฉันไปถึงขั้นสุดท้ายBINARY(16)ที่ฉันเริ่มเปรียบเทียบประสิทธิภาพกับจำนวนเต็มพื้นฐานที่เพิ่มขึ้นอัตโนมัติ การทดสอบและผลลัพธ์แสดงไว้ด้านล่าง แต่ถ้าคุณต้องการสรุปก็แสดงว่าINT AUTOINCREMENTและBINARY(16) RANDOMมีประสิทธิภาพเหมือนกันในช่วงข้อมูลสูงสุด 200,000 (ฐานข้อมูลถูกเติมข้อมูลล่วงหน้าก่อนการทดสอบ) ตอนแรกฉันสงสัยว่าจะใช้ UUID เป็นคีย์หลักและแน่นอนฉันก็ยังอยู่ แต่ฉันเห็นศักยภาพที่นี่เพื่อสร้างฐานข้อมูลที่ยืดหยุ่นที่สามารถใช้ทั้งสองได้ ในขณะที่หลายคนเครียดกับข้อได้เปรียบของทั้งสองข้อเสียอะไรที่ถูกยกเลิกโดยการใช้ข้อมูลทั้งสองชนิด? PRIMARY INT UNIQUE BINARY(16) กรณีการใช้งานสำหรับการตั้งค่าประเภทนี้จะเป็นคีย์หลักดั้งเดิมสำหรับความสัมพันธ์ระหว่างตารางโดยมีตัวระบุเฉพาะที่ใช้สำหรับความสัมพันธ์ระหว่างระบบ สิ่งที่ฉันพยายามค้นพบเป็นหลักคือประสิทธิภาพที่แตกต่างระหว่างสองแนวทาง นอกเหนือจากพื้นที่ดิสก์สี่เท่าที่ใช้ซึ่งอาจเล็กน้อยมากหลังจากเพิ่มข้อมูลเพิ่มเติมพวกเขาดูเหมือนจะเหมือนกัน schema: -- phpMyAdmin SQL Dump -- version 4.0.10deb1 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generation Time: Sep 22, 2015 at 10:54 AM …