우선 TEXT
유형을 사용하는 것은 권장하지 않습니다. TEXT
를 사용하면 효율성에 심각한 영향을 미치기 때문입니다. 가장 좋은 방법은 VARCHAR
를 사용하는 것입니다. > 필드 길이의 최대 크기를 결정합니다. TEXT
类型的,因为使用TEXT
会严重影响效率,最好的方式就是使用VARCHAR
并确定字段的最大长度。
我们可以先在表里定义一个字段rule_value
,并设置长度为255,然后输入最小的json
字符串进去:
使用MySQL的CHAR_LENGTH
函数,计算rule_value
的大小:
SELECT id,rule_type,rule_value,CHAR_LENGTH(rule_value) as rule_value_length,rule_mark FROM test_table WHERE rule_type = 'RANDOM_STR'
可以看到rule_value
的长度为74:
因为rule_value
的值是json
数组,所以数组里面的值会不定变大,这个时候,就需要我们去问产品确认,里面的数组最大有多少个?
经过询问,数组最大有10个,那么计算rule_value
的长度为:
74*10=740
也就是740个字符,我们可以把之前rule_value
的长度VARCHAR(255)
改为VARCHAR(740)
即可。
最后需要补充一点知识:
TEXT
最多存65535
个字符、MEDIUMTEXT
最多存放16777215
个字符、LONGTEXT
最多存放4294967295
个字符,不过一般都不建议使用;
查看MySQL
版本命令:select version()
;
在MySQL
版本4之前,按字节来计算,版本4之后按字符来计算;
LENGTH()
返回以字节为单位的字符串的长度。CHAR_LENGTH()
rule_value
필드를 정의하고 길이를 255로 설정한 다음 가장 작은 json
문자열을 입력할 수 있습니다: CHAR_LENGTH
함수를 사용하세요. rule_value
의 크기를 계산합니다. 🎜rrreee🎜 rule_value
의 길이가 74인 것을 확인할 수 있습니다. 🎜🎜🎜🎜rule_value
의 값이 json 배열이므로 배열 내부의 값이 더 커질 수 있습니다. 이때, 내부 배열의 최대 개수는 얼마인지 제품에 확인을 요청해야 합니다. 🎜🎜조회 후 최대 배열 수는 10이고, 계산된 <code>rule_value
의 길이는 🎜rrreee🎜즉, 이전 rule_value를 <code>VARCHAR(255)
로 변경하면 VARCHAR(740)
로 변경할 수 있습니다. 🎜🎜마지막으로 몇 가지 지식을 추가해야 합니다. 🎜TEXT
는 최대 까지 저장할 수 있습니다. 65535
자, MEDIUMTEXT
는 최대 16777215
자까지 저장할 수 있고, LONGTEXT
는 최대 4294967295
까지 저장할 수 있습니다. 문자이지만 일반적으로 사용하지 않는 것이 좋습니다. 🎜🎜MySQL
버전 보기 명령: select version()
; >MySQLLENGTH()
문자열 길이를 바이트 단위로 반환합니다. CHAR_LENGTH()
문자열의 길이를 문자 단위로 반환합니다. 🎜🎜🎜위 내용은 MySQL은 VARCHAR의 크기를 어떻게 결정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!