sql server 查数据类型所用的大小?
意思就是假如第一行第一列是一个varchar类型的数据,我想用sql查出这个单元格所用的大小?varchar(100)是可以根据你输入的字符串的大小而所用到空间的大小,而...
意思就是假如第一行第一列是一个varchar类型的数据,我想用sql查出 这个单元格所用的大小?
varchar(100)是可以根据你输入的字符串的大小而所用到空间的大小,
而nvarchar(100) 是固定大小,就算输入一个字节,用的空间也是100个字符的。
如果数据库字段用text的话 输入2个字节占用的空间会多大,查数据的时候text类型会影响数据库的性能吗? 展开
varchar(100)是可以根据你输入的字符串的大小而所用到空间的大小,
而nvarchar(100) 是固定大小,就算输入一个字节,用的空间也是100个字符的。
如果数据库字段用text的话 输入2个字节占用的空间会多大,查数据的时候text类型会影响数据库的性能吗? 展开
1个回答
展开全部
所谓数据库, 不是用空间换时间,就是用时间换空间。
1 可变大小的字段, 虽然你会省空间,但是更新字段到更多字符的时候, 数据库后面的数据就要向后挪,当然,数据库会优化这个操作。随之索引之类的可能也会有变化
2 不可变字段, 虽然数据空间有浪费现象,但是更新数据时,除了这个字段变化,没有其他任何变化。性能很高
text会影响性能,因为这个类型是用来存储长字符的,大多数据库的实现都是动态的。但占用空间过于分散的话,索引和io都会下降, 所以不同类型数据库都会有一定的优化。但不管怎么说,text的性能都不是最佳的。
你提出的想获取字段的大小是可以的,一般数据库的driver都提供这个api。
但是我觉得你得到了也做不了什么。 使用数据库,数据库的性能是自管理的,不许要你插手。
即使是要优化,也是dba的角度, 不可能将之和业务混在一起。
1 可变大小的字段, 虽然你会省空间,但是更新字段到更多字符的时候, 数据库后面的数据就要向后挪,当然,数据库会优化这个操作。随之索引之类的可能也会有变化
2 不可变字段, 虽然数据空间有浪费现象,但是更新数据时,除了这个字段变化,没有其他任何变化。性能很高
text会影响性能,因为这个类型是用来存储长字符的,大多数据库的实现都是动态的。但占用空间过于分散的话,索引和io都会下降, 所以不同类型数据库都会有一定的优化。但不管怎么说,text的性能都不是最佳的。
你提出的想获取字段的大小是可以的,一般数据库的driver都提供这个api。
但是我觉得你得到了也做不了什么。 使用数据库,数据库的性能是自管理的,不许要你插手。
即使是要优化,也是dba的角度, 不可能将之和业务混在一起。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询