首先不建議使用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()傳回以字元為單位的字串的長度。
以上是MySQL怎麼確定VARCHAR的大小的詳細內容。更多資訊請關注PHP中文網其他相關文章!