上升到@ Ankan-Zerob的挑战,这是我对每个文本类型中可以存储的最大长度的估计:
Type | Bytes | English words | Multi-byte words
-----------+---------------+---------------+-----------------
TINYTEXT | 255 | ±44 | ±23
TEXT | 65,535 | ±11,000 | ±5,900
MEDIUMTEXT | 16,777,215 | ±2,800,000 | ±1,500,000
LONGTEXT | 4,294,967,295 | ±740,000,000 | ±380,000,000
在英语中,每个单词4.8个字母可能是一个很好的平均值(例如/mayzner.html),尽管单词长度会根据域名(例如口语与学术论文)而有所不同,因此没有必要过于精确。 英语主要是单字节ASCII字符,偶尔有多字节字符,因此接近每字节一个字节。 字间空间必须有一个额外的字符,所以我从每个字的5.8个字节向下舍入。 具有许多重音的语言,例如波兰语,可以存储略少的单词,例如 德语用较长的单词。
需要多字节字符的语言,如希腊语,阿拉伯语,希伯来语,印地语,泰语等,通常需要UTF-8中每个字符两个字节。 每个单词5个字母疯狂地猜测,我从每个单词的11个字节向下舍入。
CJK剧本(汉字,汉字,平假名,片假名等)我一无所知; 我相信字符大多需要UTF-8中的3个字节,并且(大量简化)它们可能被认为每个字使用大约2个字符,因此它们将介于其他两个字符之间。 (CJK脚本可能需要使用UTF-16来减少存储,具体取决于)。
这当然忽略了存储开销等。