PlusMagi's Blog By Pitt Phunsanit MariaDB,MySql,Programming MariaDB: Character Set และ Collation

MariaDB: Character Set และ Collation

สำหรับ MariaDB ( และ MySQL ) การเลือก Character Set และ Collation ที่ดีที่สุดและเป็นมาตรฐานสากลสำหรับภาษาไทยในปัจจุบันคือ utf8mb4 ครับ เหตุผลที่แนะนำให้ใช้ utf8mb4 แทนที่จะเป็น tis620 ( ที่เป็น encoding ไทยดั้งเดิม ) หรือ utf4 แบบเก่า มีดังนี้ครับ


การตั้งค่าที่แนะนำ

  • Character Set: utf8mb4
    • รองรับตัวอักษรไทยครบถ้วน รวมถึง Emoji และอักขระพิเศษจากทั่วโลก
  • Collation: utf8mb4_unicode_ci หรือ utf8mb4_general_ci
    • utf8mb4_unicode_ci: มีความแม่นยำสูงในการเรียงลำดับ ( Sorting ) ตามมาตรฐานสากล
    • utf8mb4_general_ci: ทำงานได้เร็วกว่าเล็กน้อย แต่อาจมีรายละเอียดการเรียงลำดับบางอย่างที่ไม่เป๊ะเท่าอันแรก

ทำไมต้อง utf8mb4 ?

ในสมัยก่อนเรามักใช้ tis620 เพราะประหยัดพื้นที่ ( 1 ตัวอักษรใช้ 1 byte ) แต่ในปัจจุบัน utf8mb4 กลายเป็นมาตรฐานด้วยเหตุผลหลายประการ

  • ความหลากหลาย: หากเว็บไซต์หรือแอปของคุณต้องรองรับชื่อคนที่มีอักขระพิเศษ หรือต้องการเก็บ Emoji ในฐานข้อมูล utf8mb4 คือคำตอบเดียวที่รองรับครับ
  • การเชื่อมต่อ: Library ส่วนใหญ่ในปัจจุบัน ( เช่น Node.js, Python, PHP ) ถูกตั้งค่าให้คุยกับ Database เป็น UTF-8 เป็นพื้นฐานอยู่แล้ว การตั้งค่าให้ตรงกันจะช่วยลดปัญหา “ภาษาต่างดาว” หรือ “ตัวอ่านไม่ออก”

ตัวอย่างคำสั่ง SQL ในการสร้าง Database

หากคุณกำลังจะสร้าง Database ใหม่ สามารถใช้คำสั่งนี้ได้เลยครับ

CREATE DATABASE my_database_name
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

อ่านเพิ่มเติม