Zuallererst wird die Verwendung des Typs TEXT
nicht empfohlen, da die Verwendung von TEXT
die Effizienz erheblich beeinträchtigt. Der beste Weg ist die Verwendung von VARCHAR
und bestimmen Sie die maximale Größe des Feldes. 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
in der Tabelle definieren, die Länge auf 255 festlegen und dann die kleinste json
-Zeichenfolge eingeben: CHAR_LENGTH
von MySQL, Berechnen Sie die Größe von rule_value
: 🎜rrreee🎜Sie können sehen, dass die Länge von rule_value
74 beträgt: 🎜🎜🎜🎜Weil der Wert von rule_value
ein json Array, daher kann der darin enthaltene Array-Wert größer werden. Zu diesem Zeitpunkt müssen wir das Produkt um eine Bestätigung bitten. Wie hoch ist die maximale Anzahl der darin enthaltenen Arrays? 🎜🎜Nach der Abfrage beträgt die maximale Anzahl von Arrays 10, dann beträgt die berechnete Länge von <code>rule_value
: 🎜rrreee🎜Das heißt, wir können die Länge des vorherigen rule_value in <code>VARCHAR(255)
kann in VARCHAR(740)
geändert werden. 🎜🎜Zuletzt muss ich noch etwas Wissen hinzufügen: 🎜TEXT
kann bis zu speichern 65535
Zeichen, MEDIUMTEXT
kann bis zu 16777215
Zeichen speichern und LONGTEXT
kann bis zu 4294967295
speichern Zeichen, aber es wird im Allgemeinen nicht empfohlen. Verwenden Sie den Befehl 🎜🎜MySQL
: select version()
; >MySQLLENGTH()
Gibt die Länge der Zeichenfolge in Bytes zurück. CHAR_LENGTH()
Gibt die Länge der Zeichenfolge in Zeichen zurück. 🎜🎜🎜Das obige ist der detaillierte Inhalt vonWie bestimmt MySQL die Größe von VARCHAR?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!