mysql使用char或blob存储具有已知字节大小限制的utf-8字符串

4jb9z9bj  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(310)

我想把utf-8字符串存储在mysql/mariadb列中。我不能使用varchar,因为每列的字符数有限制。我已经远远超过这个极限了。
我知道包含最大utf-8字符串的最大字节数。使用char或text读取出现的文档将为每个char分配3个字节(或4个utf8mb4字节)。既然我知道实际大小,那么如果我将字符串存储在一个blob中,它会工作吗?这样行吗?这种方法有任何已知的问题吗?
我正在使用mariadb和innodb以及utf8mb4。

mfpqipee

mfpqipee1#

MEDIUMTEXT 可处理1600万字节(至少400万utf8mb4\U字符)。够了吗? MEDIUMBLOB 还可以处理1600万字节。
在上使用变体 CHAR 以及 TEXT 对于角色。这使您可以检查编码、比较、排序等 BINARY 以及 BLOB 对于不需要操作的字节,比如图像。
考虑使用 FULLTEXT 索引,用于有效地搜索数据库中的特定单词 TEXT 列。 LIKE , MID() 等也与大型 TEXT 列,但不一定有效。
你的问题对你想做什么不太准确。如果我没有给你足够的线索,请详细说明你的数据和查询要求。

相关问题