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 .