Trước đây, chỉ có utf8
; trong tương lai, bây giờ utf8mb4
sẽ là bộ ký tự mặc định. utf8mb4
là bộ ký tự mặc định.
Trong quá khứ, _general_ci
là đối chiếu mặc định; rồi đến _unicode_ci
(Unicode 4.0) tốt hơn, sau đó là _unicode_520_ci
(Unicode 5.20). Trong tương lai (MySQL 8.0), mặc định sẽ là _0900_ci_ai
(Unicode 9.0).
Trong khi đó, con đường đầy ổ gà được tạo ra bởi những sai lầm trong quá khứ của MySQL. Và các nhà thiết kế của WP đang lái một chiếc xe tăng lớn mà không để ý đến ổ gà.
MySQL 5.6 là một ổ gà lớn đã nuốt chửng nhiều người dùng WP vì giới hạn 767 chỉ mục cùng với chỉ mục WP trên VARCHAR(255)
quá dài và khả năng sử dụng utf8mb4
. Bạn đã vượt qua nó bằng cách có 5.7.17. (Việc chuyển sang 8.0 trong tương lai của bạn sẽ ít gập ghềnh hơn.)
Nghĩa là, cơ sở dữ liệu / bảng / cột mới được tạo trên 5.7.7+ sẽ không gặp sự cố 767, nhưng những thứ được di chuyển từ phiên bản cũ hơn (5.5.3+) có thể gặp sự cố, đặc biệt nếu có điều gì đó khiến bạn thay đổi thành utf8mb4.
Để làm gì? Tôi có thể sẽ hết dung lượng khi cố gắng viết ra tất cả các tùy chọn. Vì vậy, hãy cung cấp lịch sử dữ liệu, đường dẫn nâng cấp (nếu có), cài đặt hiện tại, ROW_FORMAT
của bảng, CHARACTER SET
và COLLATION
trong số các cột, kết quả của SHOW VARIABLES LIKE 'char%';
Bạn nên ở đâu? Đối với 5.7.7+, utf8mb4
và utf8mb4_unicode_520_ci
bất cứ nơi nào thiết thực. Bộ ký tự đó cung cấp cho bạn Biểu tượng cảm xúc và tất cả tiếng Trung (utf8 thì không). Đối chiếu đó là tốt nhất hiện có, mặc dù bạn có thể khó nhận thấy nó quan trọng ở đâu.
Lưu ý:phần đầu tiên của tên đối chiếu là bộ ký tự duy nhất mà nó hoạt động. Đó là utf8_unicode_ci
không hoạt động với utf8mb4
.