ปัจจุบัน ฉันมีฐานข้อมูลที่มี 13 ล้านแถว และเราใช้ uuid
เป็นคีย์หลัก ทุกครั้งที่เราย้ายฐานข้อมูล จะใช้เวลาหลายชั่วโมงกว่าจะเสร็จสิ้นตาราง ดูเหมือนว่าประสิทธิภาพในการสืบค้นจะลดลงเช่นกัน
หลังจาก Google และอ่านบล็อกบางส่วนแล้ว พวกเขาแนะนำให้แปลงจาก uuid
เป็น binary(16)
แต่ค่าที่แปลงแล้วไม่สามารถอ่านได้และใช้งานไม่สะดวกมาก นอกจากนี้ยังใช้งานยากในโค้ด Ruby ของฉันด้วย
มีวิธีแก้ปัญหาอื่นในการรับตัวระบุที่ไม่ซ้ำทั่วโลกใน MySQL นอกเหนือจาก uuid
หรือไม่
mysql> select UNHEX(REPLACE('A4E7890F-A188-4663-89EB-176D94DF6774','-',''));
+---------------------------------------------------------------+
| UNHEX(REPLACE('A4E7890F-A188-4663-89EB-176D94DF6774','-','')) |
+---------------------------------------------------------------+
| ���Fc��m��gt |
ฉันตรวจสอบแล้วและ mongodb ก็มี ObjectId
ซึ่งมีขนาดเพียง 12 ไบต์เท่านั้น เป็นไปได้ไหมที่จะใช้สิ่งนั้นในเซิร์ฟเวอร์ MySQL? ฉันจะใช้ประโยชน์จากสิ่งนั้นเพื่อใช้ใน MySQL ได้อย่างไร