programing

utf8_unicode_ci와 utf8mb4_0900_ai_ci의 차이점은 무엇입니까?

goodsources 2023. 9. 13. 22:34
반응형

utf8_unicode_ci와 utf8mb4_0900_ai_ci의 차이점은 무엇입니까?

사이의 차이점은 무엇입니까?utf8mb4_0900_ai_ci그리고.utf8_unicode_ci데이터베이스 텍스트 코딩은 mysql에서 (특히 성능 면에서)?

업데이트:

utf8mb4_unicode_ci와 utf8mb4_0900_ai_ci 사이에 유사한 차이점이 있습니까?

  • 부호화는 같습니다.즉, 바이트가 동일하게 보입니다.
  • 캐릭터 세트가 다릅니다.utf8mb4는 더 많은 문자를 가지고 있습니다.
  • 대조(비교를 수행하는 방법)가 다릅니다.
  • 공연은 다르지만 거의 문제가 되지 않습니다.

utf8_unicode_ci암시적으로CHARACTER SET utf8, 여기에는 1, 2, 3바이트 UTF-8 문자만 포함됩니다.따라서 대부분의 이모지와 일부 한자는 제외됩니다.

utf8mb4_unicode_ci암시적으로CHARACTER SET utf8mb4이에 해당합니다.COLLATION4바이트의CHARACTER SET utf8mb4.

유니코드 조직은 수년간 규격을 진화시켜 왔습니다."버전"에서 MySQL Collections로의 매핑은 다음과 같습니다.

4.0   _unicode_
5.20  _unicode_520_
9.0   _0900_
14.0  _uca1400_ai_ci etc.  as/ai and cs/ci (MariaDB-10.10, not MySQL)

대부분의 차이는 대부분의 사람들이 결코 마주치지 않는 분야에 있을 것입니다.한 가지 예:어느 시점에서 변화는 이모지를 구별하고 어떤 방식으로든 질서를 잡을 수 있게 했습니다.

접미사(MySQL 문서):

_bin      -- just compare the bits; don't consider case folding, accents, etc
_ci       -- explicitly case insensitive (A=a) and implicitly accent insensitive (a=á)
_ai_ci    -- explicitly case insensitive and accent insensitive
_as (etc) -- accent-sensitive (etc)

성능:

_bin         -- simple, fast
_general_ci  -- fails to compare multiple letters; eg ss=ß, so somewhat fast
...          -- slower
_900_        -- (8.0) much faster because of a rewrite

단,대조 속도는 일반적으로 쿼리에서 성능 문제가 가장 적습니다.INDEXes,JOINs, 하위 쿼리, 테이블 스캔 등이 성능에 훨씬 더 중요합니다.

언급URL : https://stackoverflow.com/questions/54885178/whats-the-difference-between-utf8-unicode-ci-and-utf8mb4-0900-ai-ci

반응형