phpMyAdmin
 sql >> Cơ Sở Dữ Liệu >  >> Database Tools >> phpMyAdmin

Tại sao bảng CHARSET được đặt thành utf8mb4 và COLLATION thành utf8mb4_unicode_520_ci

Trước đây, chỉ có utf8; trong tương lai, utf8mb4 sẽ là bộ ký tự mặc định. bây giờ 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 SETCOLLATION 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+, utf8mb4utf8mb4_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 .




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Tại sao tôi nhận được giá trị NULL trên Left Join?

  2. phpmyadmin:cách xóa giới hạn thời gian để nhập cơ sở dữ liệu lớn

  3. phpmyadmin - count ():Tham số phải là một mảng hoặc một đối tượng triển khai Countable

  4. MySQL # 2006 - Máy chủ MySQL đã biến mất trong phpMyAdmin

  5. SQL Cách xóa dữ liệu khỏi bảng bằng INNER JOIN