สำหรับ 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;
อ่านเพิ่มเติม