Th8 14, 2024
SỰ KHÁC BIỆT GIỮA CÁC ĐỐI CHIẾU UTF8_GENERAL_CI, UTF8_UNICODE_CI, UTF8MB4_GENERAL_CI, UTF8MB4_UNICODE_CI LÀ GÌ. LỰA CHỌN ĐỐI CHIẾU, BỘ KÝ TỰ VÀ MÃ HÓA NÀO CHO CƠ SỞ DỮ LIỆU MYSQL

Kể từ MySQL 5.5.3, bạn phải sử dụng utf8mb4 chứ không phải utf8. Cả hai nhóm này đều đề cập đến mã hóa UTF-8, nhưng utf8 cũ hơn có các hạn chế dành riêng cho MySQL ngăn không cho sử dụng các ký tự trên 0xFFFD.

Do đó, cả utf8_general_ci và utf8_unicode_ci đều không cần được sử dụng nữa.

Đối với các phiên bản mã hóa mới utf8mb4_general_ci và utf8mb4_unicode_ci. Đó là unicode được ưu tiên hơn chung. Biến thể utf8mb4_general_ci sẽ nhanh hơn một chút trong việc sắp xếp (hiện tại điều này không còn phù hợp nữa) nhưng có vấn đề về sắp xếp ở một số ngôn ngữ nhất định. Mã hóa utf8mb4_unicode_ci không có những thiếu sót này.

Vì vậy, mã hóa được đề xuất hiện tại cho cơ sở dữ liệu và bảng MySQL là utf8mb4_unicode_ci.

Mẹo: Để tiết kiệm dung lượng với utf8mb4, hãy sử dụng VARCHAR thay vì CHAR. Nếu không, MySQL sẽ dành bốn byte cho mỗi ký tự trong cột CHAR CHARACTER SET utf8mb4, vì đây là độ dài tối đa có thể. Ví dụ: MySQL phải dành 40 byte cho cột CHAR(10) CHARACTER SET utf8mb4.

Lưu ý: chính xác hơn, utf8mb4_unicode_ci không hẳn là một mã hóa, theo thuật ngữ của MySQL, nó được gọi là “Đối chiếu” và bao gồm một bộ ký tự cũng như các quy tắc so sánh và sắp xếp. Nghĩa là, utf8mb4_unicode_ci là COLLATION và utf8mb4 là một bộ ký tự và UTF-8 đã là một mã hóa có độ dài thay đổi.

More Details

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *