Mysql使用CHAR或BLOB来存储具有已知字节大小限制的UTF-8字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql使用CHAR或BLOB来存储具有已知字节大小限制的UTF-8字符串相关的知识,希望对你有一定的参考价值。
我有UTF-8字符串,我想存储在mysql / MariaDB列中。我不能使用VARCHAR,因为每列的字符数限制。我远远超过了那个限度。
我知道包含我拥有的最大UTF-8字符串的最大字节数。读取使用CHAR或TEXT显示的文档将为每个字符分配3个字节(或UTF8MB4为4个字节)。因为我知道如果我将字符串存储在BLOB中,它的实际大小是否可行?这会起作用吗?这种方法有任何已知问题吗?
我正在使用带有InnoDB和UTF8MB4的MariaDB。
答案
MEDIUMTEXT
可以处理1600万字节(至少400万utf8mb4 _characters)。这样就够了吗?
MEDIUMBLOB
也可以处理1600万字节。
在CHAR
和TEXT
上使用变体作为角色。这使您可以检查编码,比较,排序等。使用BINARY
和BLOB
上的变体来获取您不需要操作的字节 - 例如图像。
考虑使用FULLTEXT
索引有效地搜索TEXT
列中的特定单词。 LIKE
,MID()
等也使用大型TEXT
列,但不一定有效。
您的问题对于您要做的事情是不准确的。如果我没有给你足够的线索,请详细说明你的数据和查询要求。
以上是关于Mysql使用CHAR或BLOB来存储具有已知字节大小限制的UTF-8字符串的主要内容,如果未能解决你的问题,请参考以下文章