猿问

varchar和nvarchar有什么区别?

varchar和nvarchar有什么区别?

只是因为nvarchar支持多字节字符?如果是这样的话,除了存储问题以外,是否真的有必要使用varchars?


GCT1015
浏览 2453回答 3
3回答

皈依舞

阿nvarchar列可以存储任何Unicode数据。一个varchar列仅限于8位代码页.有些人认为varchar应该被使用,因为它占用的空间更少。我相信这不是正确的答案。代码页不匹配是一种痛苦,Unicode是解决代码页问题的方法。现在有了便宜的磁盘和内存,就没有理由再浪费时间在代码页上闲逛了。所有现代操作系统和开发平台都在内部使用Unicode。用nvarchar而不是varchar,您可以避免每次从数据库读取或写入数据库时进行编码转换。转换需要时间,而且容易出错。从转换错误中恢复是一个非平凡的问题。如果您与只使用ASCII的应用程序进行接口,我仍然建议在数据库中使用Unicode。操作系统和数据库排序算法将更好地与Unicode一起工作。接口时,Unicode避免了转换问题。其他系统。你将为未来做好准备。而且,您可以始终验证您的数据仅限于7位ASCII,用于任何您必须维护的遗留系统,即使在享受完整Unicode存储的一些好处的同时也是如此。

小怪兽爱吃肉

我总是使用nvarchar,因为它允许我构建的任何东西都能承受我扔给它的几乎任何数据。我的CMS系统使用中文是偶然的,因为我使用了nvarchar。如今,任何新的应用程序都不应该真正关注所需的空间。
随时随地看视频慕课网APP
我要回答