programing

테이블 CHARSET이 utf8mb4로, COLATION이 utf8mb4_unicode_520_ci로 설정되어 있는 이유는 무엇입니까?

subpage 2023. 3. 15. 19:37
반응형

테이블 CHARSET이 utf8mb4로, COLATION이 utf8mb4_unicode_520_ci로 설정되어 있는 이유는 무엇입니까?

최근에 알게 된 것은 새로운 WordPress 프로젝트를 시작할 때마다 테이블 조합이 자동으로 변경된다는 것입니다.utf8_unicode_ci(phMyAdmin에서 새 DB를 작성할 때 선택합니다)utf8mb4_unicode_520_ci.

또한 phpMyAdmin에서 "일반 설정" 아래에 있는 서버 연결 조합의 기본값이 다음과 같습니다.utf8mb4_unicode_520_ci.

Ubuntu 17.04에서 MySQL Server 5.7.17과 phpMyAdmin 4.6을 실행하고 있습니다.

질문은 다음과 같습니다.

  1. 왜 이런 일이 생기는 건가요?
  2. 가능하다면 어떻게 하면 예방할 수 있을까요?때문에.utf8mb4WP 사이트를 지원하지 않는 이전 MySQL 서버로 마이그레이션할 때 문제가 발생했습니다.
  3. 2번 지점이 바람직한가요?charset을 사용하면 어떤 이점이 있습니까?utf8mb4에 걸쳐서utf8, 및 대조utf8mb4_unicode_520_ci에 걸쳐서utf8_unicode_ci?

예전에는 그냥...utf8(일명utf8mb3); 앞으로는 utf8mb4가 기본 문자 집합이 됩니다. 지금utf8mb4는 기본 문자 세트입니다.

옛날에는_general_ci디폴트 대조입니다._unicode_ci(Unicode 4.0)이 더 낫습니다._unicode_520_ci(유니코드 5.20).향후(MySQL 8.0) 기본값은 다음과 같습니다._0900_ci_ai(유니코드 9.0).

한편, MySQL의 과거 실수로 인해 발생한 포트홀로 가득합니다.그리고 WP 디자이너들은 포트홀을 눈치채지 못하는 큰 탱크를 운전하고 있다.

MySQL 5.6은 지나치게 긴 WP 인덱스와 함께 767개의 인덱스에 대한 제한 때문에 많은 WP 사용자를 삼킨 큰 포트홀이었다.VARCHAR(255)또, 사용의 가능성도 있습니다.utf8mb4. 5.7.17을 얻음으로써 충분히 성공했습니다.(앞으로 8.0으로 이행하는 것은 어렵지 않을 것입니다.)

즉, 5.7.7 이상에서 새로 작성된 데이터베이스/테이블/컬럼에서는 767 문제가 발생하지 않지만 특히 utf8mb4로 변경되는 원인이 되는 경우 이전 버전(5.5.3 이상)에서 마이그레이션된 항목에 문제가 발생할 수 있습니다.

무엇을 해야 하나?모든 옵션을 설명하려다 공간이 부족해질 것 같아요.데이터 이력, 업그레이드 경로(있는 경우), 현재 설정,ROW_FORMAT테이블에서CHARACTER SET그리고.COLLATION컬럼의 출력SHOW VARIABLES LIKE 'char%';

당신은 어디에 있어야 합니까?5.7.7 이상의 경우utf8mb4그리고.utf8mb4_unicode_520_ci가능한 곳이라면 어디든.이 문자 집합은 이모지와 모든 중국어를 제공합니다(utf8은 그렇지 않습니다.그 조합은 가장 좋은 조합이지만, 어디가 중요한지 잘 모르실 수도 있습니다.

참고: 조합 이름의 첫 번째 부분은 조합이 사용할 수 있는 유일한 문자 집합입니다.은 ★★★★★★★★★★★★★★★★입니다.utf8_unicode_ci에는 사용할 수 .utf8mb4.

MySQL 8.0의 경우 제목에 언급된 것보다 더 나은 조합이 있습니다.일반적으로 선택한 문자 집합의 기본 조합만 사용합니다(언어별 요구 호환성 문제가 없는 경우).

언급URL : https://stackoverflow.com/questions/43644218/why-is-table-charset-set-to-utf8mb4-and-collation-to-utf8mb4-unicode-520-ci

반응형