Iva*_*van 5 mysql sql database
如果要存储的XML文档总是小于64 KiB(即AFAIK,VARCHAR的限制),那么VARCHAR和TEXT列类型的优缺点是什么呢?
以下摘录自有关字符串类型的 MySQL 文档。
\n\n"变长字符串。M表示最大列长度(以字符为单位)。M的范围是0到65,535。VARCHAR的有效最大长度受最大行大小(65,535字节,所有列共享)的影响以及使用的字符集。例如,utf8 字符每个字符最多需要三个字节,因此使用 utf8 字符集的 VARCHAR 列可以声明为最多 21,844 个字符。请参阅第 E.10.4 节,\xe2\ x80\x9c表列数和行大小限制\xe2\x80\x9d。
\n\nMySQL 将 VARCHAR 值存储为一字节或两字节长度前缀加数据。长度前缀指示值中的字节数。如果值需要不超过 255 个字节,则 VARCHAR 列使用一个长度字节;如果值可能需要超过 255 个字节,则使用两个长度字节。”
\n\n以及TEXT
摘录:
“最大长度为 65,535 (216 \xe2\x80\x93 1) 个字符的 TEXT 列。如果值包含多字节字符,则有效最大长度会更小。每个 TEXT 值都使用两字节长度前缀存储,指示值中的字节数。
\n\n可以为此类型指定可选长度 M。如果这样做了,MySQL 会将该列创建为足够大以容纳 M 个字符长的值的最小 TEXT 类型。”
\n\n从表面上看,text和varchar似乎是相同的,因为它们对字符串具有相同的存储容量,但是经过进一步的研究,我遇到了以下线程,这表明MySQL在处理索引时以不同的方式处理这两列以及创建临时表,这两者都会影响查询性能。
\n\n如果您不打算对存储的数据进行任何查询,我建议考虑 NoSQL 解决方案,例如MongoDB。
\n 归档时间: |
|
查看次数: |
1354 次 |
最近记录: |