2. 18:15 12/08/2026
Đáp án được người đặt câu hỏi chọn
Chào bạn Bảo Nam,
Đây không chỉ là việc đổi một biến cấu hình. Charset/collation ảnh hưởng cách bytes được lưu, cách so sánh/sắp xếp, index length và cả behavior unique. Hãy làm migration có kiểm soát, không chạy một ALTER diện rộng trực tiếp trên production.
Lộ trình an toàn:
1. Inventory database, table, column, connection charset và source file encoding. Xác định data đã bị mojibake khác với data chỉ chưa hỗ trợ emoji.
2. Chuẩn hóa ứng dụng/kết nối sang utf8mb4, sau đó chọn collation theo yêu cầu so sánh thực tế của từng field. Username/email, tìm kiếm tự do và mã định danh có thể cần quy tắc khác nhau.
3. Tạo bản sao/staging đủ lớn, chạy migration trên đó và kiểm tra dữ liệu mẫu bao gồm tiếng Việt có dấu, emoji, chuỗi ghép ký tự và các cặp có thể collide khi đổi collation.
4. Rà soát unique index, foreign key, index dài và query sort/search. Có kế hoạch online schema change hoặc maintenance window tùy quy mô/khả năng hạ tầng.
5. Backup, metrics, rollback/restore plan và xác nhận dữ liệu sau migration trước khi chuyển dần production.
Đừng dùng việc thay collation để giải quyết policy username mà không có test nghiệp vụ. Quy tắc so sánh cần được ghi thành requirement và test, thay vì để mặc định database quyết định ngầm.
0