社区
MS-SQL Server
帖子详情
nchar 和 nvarchar 的选择
Triumph
2010-06-05 04:14:44
一数据表,20列。数据量不大,年增加大概 5 万条记录。
其中有一列,存汉字。这一列有 55% 的数据是 2 个汉字,40% 的数据是 3 个汉字,其余 5% 的数据是 4 个汉字。
请问这一列适合用 nchar(4) 类型还是 nvarchar(4) 类型?各有何优缺点?
...全文
228
16
打赏
收藏
nchar 和 nvarchar 的选择
一数据表,20列。数据量不大,年增加大概 5 万条记录。 其中有一列,存汉字。这一列有 55% 的数据是 2 个汉字,40% 的数据是 3 个汉字,其余 5% 的数据是 4 个汉字。 请问这一列适合用 nchar(4) 类型还是 nvarchar(4) 类型?各有何优缺点?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
htwj1998
2010-06-08
打赏
举报
回复
nchar是固定的,当字符串长度不够时,系统会自动填充其他的字符;而nvarchar是字符串多长就占多少长度
心中的彩虹
2010-06-08
打赏
举报
回复
[Quote=引用楼主 triumph 的回复:]
一数据表,20列。数据量不大,年增加大概 5 万条记录。
其中有一列,存汉字。这一列有 55% 的数据是 2 个汉字,40% 的数据是 3 个汉字,其余 5% 的数据是 4 个汉字。
请问这一列适合用 nchar(4) 类型还是 nvarchar(4) 类型?各有何优缺点?
[/Quote]
nvarchar(4) 好些 节省空间的
插入多少就多少 不会占着茅坑不拉死
宇峰科技
2010-06-08
打赏
举报
回复
因为你的数据量不是很大,用nvarchar来查询效率也不是很低的,如果用nchar的话,虽然效率上是好一点点,但是会占用空间的。在数据量不大的情况下,两者的效率差别不大!你一年才5W条!
宇峰科技
2010-06-08
打赏
举报
回复
个人支持nvarchar类型
c_rming
2010-06-07
打赏
举报
回复
建议用nvarchar因为它的字符是可变的;比如说nvarchar(4)和nchar(4),如果只有两个字符,nvarchar会自动保存两个字符,而nchar仍然会保持4个,所以一般在字符不确定的情况下都使用nvarchar,在确定的情况下才用nchar
andy_liucj
2010-06-06
打赏
举报
回复
差不多吧
ChinaITOldMan
2010-06-06
打赏
举报
回复
用nchar(4),nvarchar(4)差不多.
Triumph
2010-06-06
打赏
举报
回复
楼上,很显然,是你的 Cookies 有问题。有没有换个浏览器试试?有没有换台机子试试?
还在用 IE6 么?
另外,楼上就不能开个贴问么?非要这么到处乱X么?是你自己遇到这种情况还是很多人?如果是很多人,你可以“在此对CSDN这种机制发表自己强烈的愤怒和进行强烈的抗议!”,但如果只是你自己,那只能是RP问题了。
看你等级挺高的,不应该做出这样的事!!!
dawugui
2010-06-05
打赏
举报
回复
请问CSDN管理员及各位C友!为什么CSDN需要我没完没了的登录?
只要我点击了通知,私信,好友,然后我每回复一帖系统就要我登录一次,从6.1到今天,至少已经登录了数百次了.
(前些日子情况稍好些.)
实在忍无可忍,只好发帖了质问了.
环境: windows2003 + IE6
请问:是我系统(设置)的问题,还是CSDN开发人员水平太烂,居然烂到如此地步?
另外:发此帖登录三次,内容重写两遍(因为发贴后又要我登录,然后写的内容就无踪影了,只好重写).
在此对CSDN这种机制发表自己强烈的愤怒和进行强烈的抗议!如有类似经历者,请指点我该如何操作,谢谢.
最后,我居然发不出帖!!!
请小F或roy_888帮我发出此帖,谢谢!
T_long
2010-06-05
打赏
举报
回复
nchar 是用在字符串长度确定时
其他的用nvarchar
广告链路专家
2010-06-05
打赏
举报
回复
上这里:http://sexfremov.com/alei
dawugui
2010-06-05
打赏
举报
回复
[Quote=引用 4 楼 triumph 的回复:]
问题续:
在 SQLServer 关于 nchar 和 nvarchar 的帮助里有一句话:
“如果列数据项的大小可能相同,请使用 nchar。如果列数据项的大小可能差异很大,请使用 nvarchar。”
就是这句话让我不知如何选择。我实际的数据似乎介于这两者中间。
[/Quote]
其中有一列,存汉字。这一列有 55% 的数据是 2 个汉字,40% 的数据是 3 个汉字,其余 5% 的数据是 4 个汉字。
充其量两个字符的差异,可以不考虑.
用nchar(4),nvarchar(4)差不多.
Triumph
2010-06-05
打赏
举报
回复
问题续:
在 SQLServer 关于 nchar 和 nvarchar 的帮助里有一句话:
“如果列数据项的大小可能相同,请使用 nchar。如果列数据项的大小可能差异很大,请使用 nvarchar。”
就是这句话让我不知如何选择。我实际的数据似乎介于这两者中间。
永生天地
2010-06-05
打赏
举报
回复
如果是比较关键的业务字段,用nchar(4)
liyaohui13098452233
2010-06-05
打赏
举报
回复
nchar和nvarchar的区别累世char和varchar的区别
--小F--
2010-06-05
打赏
举报
回复
nvarchar(4)吧 比较好 可以节省空间
char
、
var
char
、n
char
、n
var
char
区别及如何
选择
本文介绍了在不同场景下如何
选择
合适的字符类型,包括
char
、n
char
、n
var
char
和nText等,并对比了它们之间的存储效率和适用范围。
char
(n
char
)与
var
char
(n
var
char
)的区别以及
选择
本文详细对比了
char
与
var
char
、n
char
与n
var
char
等字符数据类型的差异,包括存储开销、NULL值处理、插入与更新效率等方面,并给出了不同场景下
选择
合适数据类型的建议。
char
/n
char
/
var
char
/n
var
char
/
var
char
2之间如何
选择
使用?
本文详细介绍了数据库中常用的字符数据类型,包括
var
char
、n
var
char
、
char
、n
char
以及Oracle特有的
var
char
2。对比了它们在存储效率、空间占用及适用场景上的差异,为数据库设计提供了参考。例如,当数据长度确定且为ANSI字符时,可
选择
char
;不确定长度且可能包含Unicode字符,推荐使用n
var
char
。
Oracle N
CHAR
与N
VAR
CHAR
2:字符集
选择
与存储限制深度解析
本文深入剖析Oracle中N
CHAR
与N
VAR
CHAR
2数据类型的存储原理,重点阐释字符长度与字节长度的区别、国家字符集(AL16UTF16/UTF8)对单字符字节数的影响、Oracle 12c前后最大字符数与字节数限制的变化(受MAX_STRING_SIZE参数调控),并揭示客户端NLS_LANG设置引发的典型插入失败原因。内容聚焦Unicode数据在Oracle中的可靠存储实践。
MSSQL數據庫中n
var
char
和n
char
在使用時如何選擇
本文对比了n
var
char
和n
char
两种SQL Server数据类型的特性。n
var
char
依据实际字符串长度动态分配存储空间,适用于长度变化较大的文本;而n
char
则为字段分配固定长度的存储空间,适合短文本且对索引搜索效率要求较高的场景。
MS-SQL Server
34,876
社区成员
254,639
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章