MySQL Collation utf8_unicode แตกต่างกัน


10

แต่ฉันได้อ่านเกี่ยวกับความสำคัญของการจัดเรียง MySQL และสิ่งที่ฉันได้เรียนรู้เกี่ยวกับความเข้ากันได้และความถูกต้องจนถึงขณะนี้ 4 สิ่งเหล่านี้ดูเหมือนจะเป็นทางออกที่ดีที่สุดของฉัน

  • utf8_unicode_ci
  • utf8_unicode_520_ci
  • utf8mb4_unicode_ci
  • utf8mb4_unicode_520_ci

จากความเข้าใจของฉัน uft8mb4 จะดีสำหรับตัวละครด้วยภาษา mutli (ตัวละคร) การสนับสนุน (ญี่ปุ่นเช่น) uf8 รองรับ 3 ไบต์เท่านั้นในขณะที่ uf8mb4 รองรับ 4 ไบต์ ดังนั้นดูเหมือนว่าตัวเลือกที่ชัดเจนจะเป็น uf8mb4 แต่การจับนั้นดูเหมือนว่าคุณมีขีดจำกัดความยาว (ประณาม! ฉันต้องการเค้กของฉันและกินมันด้วย) ซึ่งเป็นข้อกังวลเล็กน้อย (ฉันคิดว่า)

จากนั้นคุณคำนึงถึงมาตรฐาน 520; ซึ่งเสนอเพิ่มเติมจากสิ่งเล็ก ๆ น้อย ๆ ที่ฉันสามารถหาได้ แต่แน่นอนว่าเป็นปัญหาฉันสามารถหาได้น้อยมากเกี่ยวกับเรื่องนี้ มีเพียงคนเท่านั้นที่พูดว่าเป็นการปรับปรุง แต่ก็ยังคลุมเครือในเรื่องของความเป็นอยู่

ฉันต้องการได้มากที่สุดโดยมีข้อ จำกัด น้อยที่สุดเท่าที่จะเป็นไปได้ ... ฉันคิดว่าบางคนที่นี่อาจรู้อะไรสักอย่างหรือสองอย่าง เว็บไซต์ MySQL อย่างเป็นทางการไม่ได้ให้ข้อมูลเท่าที่ฉันหวังไว้

จาก 4 ข้อใดที่ให้ความเข้ากันได้ความถูกต้องและความยาวในการจัดเก็บมากที่สุด อะไรคือความแตกต่างที่ยิ่งใหญ่ระหว่างมาตรฐาน 502 อย่างแท้จริง?

คำตอบ:


10

ชื่อการเปรียบเทียบ Unicode อาจมีหมายเลขรุ่นเพื่อระบุรุ่นของ Unicode Collation Algorithm (UCA) ที่ใช้การเปรียบเทียบ เรียง UCA โดยไม่มีหมายเลขรุ่นในชื่อใช้คีย์น้ำหนัก UCA ชื่อเรียงเช่นอยู่บนพื้นฐานของUCA 5.2.0 คีย์น้ำหนักversion-4.0.0utf8_unicode_520_ci

ดูhttps://dev.mysql.com/doc/refman/5.6/en/charset-collation-names.html


เพื่ออธิบายเพิ่มเติมเกี่ยวกับสิ่งนี้: การเปรียบเทียบจะไม่แก้ไขการเข้ารหัสที่ใช้ (สิ่งที่ MySQL เรียกผิดcharacter setหรือcharset) ดังนั้นutf8จะให้ UTF-8 ขนาด 3 ไบต์ (ไม่ได้มาตรฐาน) และutf8mb4จะให้ UTF-8 ขนาด 4 ไบต์
jynus

1
ดังนั้นในภาษาอังกฤษแบบง่ายความแตกต่างระหว่าง UCA 4.0.0 และ UCA 5.2.0 คืออะไรที่ใหม่กว่า ข้อดีหรือข้อเสียจะเป็นอย่างไร?
อดัม

4
มันมีผลต่อการเรียงลำดับ หากคุณจำเป็นอย่างยิ่งที่จะจัดเรียงกับเมื่อเร็ว ๆ นี้ ( แต่ยังคงล้าสมัย) รุ่นมาตรฐาน Unicode 520_ciแล้วคุณอาจต้องการที่จะใช้ สำหรับเว็บไซต์ของฉันฉันไม่สนหรอก
งัด Bynens

ขนาดไบต์ของอักขระไบต์ขนาดใหญ่ที่สุดในการutf8mb4_unicode_520_ciเปรียบเทียบคืออะไร
oldboy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.