MySQL 오류 #1071: 키 길이 제약 조건 조사
두 개의 VARCHAR에 고유 키 제약 조건을 추가하여 MySQL 테이블을 수정하려고 할 때 열에서 다음과 같은 다소 복잡한 오류 메시지가 나타납니다. "#1071 - 지정된 키가 너무 깁니다. 최대 키 길이는 다음과 같습니다. 767바이트". 두 열의 크기가 모두 767바이트 제한 내에 있음에도 불구하고 이 오류를 이해하려면 MySQL의 키 길이 제약 조건에 대해 자세히 알아볼 필요가 있습니다.
키 길이 제한 재검토
MySQL 버전 5.6 이하에서 키의 최대 길이는 실제로 InnoDB 테이블의 경우 767바이트이고 테이블의 경우 1,000바이트입니다. MyISAM 테이블. 그러나 MySQL 버전 5.7 이상에서는 이 제한이 훨씬 더 큰 3072바이트로 확장되었습니다.
VARCHAR 저장소 디코딩
VARCHAR 데이터 유형은 최대값을 제안하지만 각 열에 대해 20바이트 및 500바이트를 저장하는 경우 이 계산에서는 문자 인코딩을 고려하지 않습니다. VARCHAR 필드가 utf8mb4 형식으로 인코딩된 경우 최대 인덱스 접두사 길이는 사실상 1/4로 줄어들어 결과적으로 191바이트(767/4)만 됩니다.
해결 방법 찾기
이 문제를 해결하려면 다음 중 하나를 구현하는 것이 좋습니다. 전략:
위 내용은 MySQL에서 오류 #1071: '지정된 키가 너무 깁니다'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!