当前位置: 首页 > 面试题库 >

MySQL的最佳varchar大小是多少?

东方高洁
2023-03-14
问题内容

MySQL如何存储varchar字段?我可以假设以下模式代表合理的存储大小:

1,2,4,8,16,32,64,128,255(最大)

通过示例进行说明。可以说我有20个字符的varchar字段。MySQL在创建此字段时是否基本上保留32个字节的空间(不确定是否为字节),但只允许输入20个字节?

我想我担心优化大型表的磁盘空间。


问题答案:

为了回答这个问题,在磁盘上MySql使用1 +字段中用于存储数据的大小(因此,如果将该列声明为varchar(45),并且该字段为“
FooBar”,则它将在磁盘上使用7个字节,除非您当然使用多字节字符集,否则将使用14个字节)。因此,无论您声明自己的列,它都不会对存储端产生任何影响(您表示担心大型表的磁盘优化)。但是,它确实在查询中有所不同,因为当MySql生成临时表(SORT,ORDER等)时,VARCHAR转换为CHAR,并且可以容纳在单个页面中的记录越多,表扫描所需要的内存越少且速度越快是。



 类似资料:
  • 问题内容: 如果我在表中有一列具有类型字段,并且如果我尝试插入长度为16的数据,MySQL会提示错误 有谁知道为什么MySQL中的VARCHAR字段采用固定长度?另外,基于给定的大小,每个记录的VARCHAR字段会占用多少字节? 问题答案: 如果将一列设置为允许的最大字节数为15,则在不修改该列以使其支持超过15个字符的情况下,最多不能传递15个字符。如果存储4个字符串,则只能使用约4个字节可能的

  • 问题内容: 由于(当前)仅支持将字符串作为值,并且为了做到这一点,需要先将对象进行字符串化(存储为JSON- string),然后才可以定义值的长度。 有谁知道是否存在适用于所有浏览器的定义? 问题答案: 储存空间 暗示,使用DOM存储,您具有比对Cookie施加的典型用户代理限制更大的存储空间。但是,提供的数量未在规范中定义,用户代理也没有有意义地广播。 如果您查看Mozilla源代码,我们可以

  • 问题内容: 由于(当前)仅支持将字符串作为值,并且为了做到这一点,需要先将对象进行字符串化(存储为JSON- string),然后才可以定义值的长度。 有谁知道是否存在适用于所有浏览器的定义? 问题答案: 引用有关Web存储的Wikipedia文章: 可以简单地将网络存储视为Cookie的一种改进,它提供了更大的存储容量(Google Chrome中每个原始站点10 MB,Mozilla Fire

  • 问题内容: 我阅读了有关Lucene限制2Gb文档的说明。在Elasticsearch中可以建立索引的文档大小是否还有其他限制? 问题答案: Lucene内部使用一个字节缓冲区,该缓冲区使用32位整数进行寻址。根据定义,这限制了文档的大小。因此,理论上最大2GB。 在ElasticSearch中: ES GitHub代码中有一个,并将其设置为或。因此,基本上, 2GB是通过HTTP进行批量索引的最

  • 问题内容: 读取文件太大而无法容纳缓冲区时,出现致命错误。 要么, RangeError:“ size”参数不得大于Function.Buffer.allocUnsafe(buffer.js:209:3)的2147483647 如果我尝试分配1GB缓冲区,则会遇到同样的致命错误, Node.js Buffer类实例的最大大小是多少? 问题答案: V8中类型化数组的最大长度当前设置为以下值,具体取决

  • 本文向大家介绍MongoDB中文档的最大大小是多少,包括了MongoDB中文档的最大大小是多少的使用技巧和注意事项,需要的朋友参考一下 该文档是集合中的记录。每个文档的大小限制为16 MB。文档包裹在大括号({})中。 让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出-