Mysql使用CHAR或BLOB来存储具有已知字节大小限制的UTF-8字符串

问题描述 投票:0回答:1

我有UTF-8字符串,我想存储在Mysql / MariaDB列中。我不能使用VARCHAR,因为每列的字符数限制。我远远超过了那个限度。

我知道包含我拥有的最大UTF-8字符串的最大字节数。读取使用CHAR或TEXT显示的文档将为每个字符分配3个字节(或UTF8MB4为4个字节)。因为我知道如果我将字符串存储在BLOB中,它的实际大小是否可行?这会起作用吗?这种方法有任何已知问题吗?

我正在使用带有InnoDB和UTF8MB4的MariaDB。

mysql utf-8 mariadb blob innodb
1个回答
0
投票

MEDIUMTEXT可以处理1600万字节(至少400万utf8mb4 _characters)。这样就够了吗?

MEDIUMBLOB也可以处理1600万字节。

CHARTEXT上使用变体作为角色。这使您可以检查编码,比较,排序等。使用BINARYBLOB上的变体来获取您不需要操作的字节 - 例如图像。

考虑使用FULLTEXT索引有效地搜索TEXT列中的特定单词。 LIKEMID()等也使用大型TEXT列,但不一定有效。

您的问题对于您要做的事情是不准确的。如果我没有给你足够的线索,请详细说明你的数据和查询要求。

© www.soinside.com 2019 - 2024. All rights reserved.