2009-09-06 3 views
0

"summary"(tinytext, utf8_turkish_ci)라는 이름의 열이 있습니다. 나는 255 바이트와 255 개의 문자를 저장할 수 있다는 것을 알고있다. 그러나 만약 내가 같은 유니 코드 문자를 사용하면, 저장 용량은 자연적으로 감소합니다. 내 방문자가 250 자의 긴 유니 코드 텍스트를 입력하면 마지막 문자가 지워집니다. 요약 열은 항상 250 자입니다. 내가 무엇을 할 수 있을지 ? 감사.MySQL UTF 텍스트 용량

답변

4

대신 varchar으로 설정할 수 있습니다. varchar의 길이는 사용자가 지정한 의 수로 제한됩니다. tinytext 필드의 길이는 255 바이트으로 제한됩니다.

+0

추가 참고 사항 : MySQL 5에서 Innodb는 키의 일부가 아닌 필드가 더 길 수도 있지만 767 바이트의 키만 허용합니다. OP가 utf8 문자 세트를 사용하고 있고 MySQL이 문자 당 3 바이트를 사용하기 때문에 키의'varchar' 필드는 255.67 문자의 제한을 가지며 실제로는 최대 255 문자를 의미합니다. OP는 250자를 필요로하기 때문에 충분합니다. –

0

UTF-8은 가변 길이 인코딩입니다. char는 1에서 4 바이트로 인코딩 될 수 있습니다 (이론적으로 한계는 6이지만 아직 발생하지 않았습니다). 터키어 만 사용하는 경우 각 문자에 대해 2 바이트 만 필요합니다. 따라서 250자를 지원하려면 500 바이트의 열 크기가 필요하므로 varchar(500) 또는 text과 같은 것을 사용해야합니다.