惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
T
Threatpost
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - Franky
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
S
Security Affairs
P
Proofpoint News Feed
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
S
Security @ Cisco Blogs
H
Hacker News: Front Page
Security Archives - TechRepublic
Security Archives - TechRepublic
Vercel News
Vercel News
Engineering at Meta
Engineering at Meta
Know Your Adversary
Know Your Adversary
Y
Y Combinator Blog
美团技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
月光博客
月光博客
量子位
博客园_首页
The Last Watchdog
The Last Watchdog
D
DataBreaches.Net
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
The Register - Security
The Register - Security
Schneier on Security
Schneier on Security
H
Help Net Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
F
Full Disclosure
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
aimingoo的专栏
aimingoo的专栏
S
Schneier on Security
L
Lohrmann on Cybersecurity
S
Secure Thoughts
Stack Overflow Blog
Stack Overflow Blog
Cloudbric
Cloudbric
Microsoft Security Blog
Microsoft Security Blog

博客园 - wdx2008

ORM框架 sql语句字符串处理大全 - wdx2008 - 博客园 收集的ASP.NET中常用正则表达式 - wdx2008 - 博客园 web.config详解 为你的mail server增加SPF记录 马云在《赢在中国》对创业者的经典点评 给不同文件夹设置主题并指定其编码 - wdx2008 - 博客园 在线支付类封装 - wdx2008 - 博客园 SET XACT_ABORT各种用法及显示结果 ASP.NET邮件外发 asp.net Request.ServerVariables 各参数说明集合 - wdx2008 sql清除事务日志命令 js不允许单独打开left.aspx或top.apsx - wdx2008 - 博客园 ASP.NET2.0 TreeView的数据库绑定 - wdx2008 - 博客园 forms验证:怎么验证两种身份? Forms 验证进行角色控制全攻略 收藏的一些ASP.net 2.0资料 关于asp.net 2.0的用户、角色管理总结(转) - wdx2008 - 博客园 開源圖表控件ZedGraph
教你合理设计数据表,将优化进行到底
wdx2008 · 2008-02-03 · via 博客园 - wdx2008

字符
varchar  
可变字符  和存储的字符字节相等 列:abc123占用6个字节(表现为占用磁盘大小,下同)
nvarchar 可变字符 是实际存储字节的两倍 例:abc123占用12个字节 该字符使用Unicode编码支持多国语言
char       固定字符  实际表现例:指定列的长度为10 将abc123填充进去后面将出现4个空格。
整数  
  bigint    占用8个字节
  从  -2^63   (-9223372036854775808)   到   2^63-1   (9223372036854775807)   的整型数据(所有数字)。 
  int   
  从   -2^31   (-2,147,483,648)   到   2^31   -   1   (2,147,483,647)   的整型数据(所有数字)。   
  smallint   占用4个字节
  从   -2^15   (-32,768)   到   2^15   -   1   (32,767)   的整数数据。   
  tinyint   占用一个字节
  从   0   到   255   的整数数据。  

总结:
1.如果网站只是中文,不涉及多国语言的建议使用varchar,使用nvarchar将浪费空间,影响效率。
2.字符长度相对固定的要使用char字段,比如USER_IP。char是定长的,   移动到下一条记录,   只需要做固定长度的指针偏移即可.  varchar则必须根据当前记录的长度算出下一个数据指针的偏移. 
3.字符为数字的最好使用数字型数据。因为其占用字节更小且排序亦占优势。如手机号码使用Varchar需11位 使用bigint则占用8位。

几个问题:
1. char(n)一定比varchar(n)速度快么?  
  不一定  
  计算varchar的偏移是会花去一些cpu时间,但性能瓶颈不在此,在io.  
  db的io单位是数据页(8192字节)(一页存有多个数据行,数据行不能跨页。当然image,text等例外).  
  因此一页中行越多,性能越好。
2.使用的数字可能很小,但如果都定义成INT对效率有影响吗?
 是的
 这个是当然的,首先表现为int和tinyint占用的字节不同,也可理解成占用的磁盘的大小不同,较小的字节可以省去不必要的 内存消耗和相关指针转移。
3.varchar/char不支持多国语言,为什么英文和中文都能正常显示?
  这是因为服务器的操作系统和所安装的MSSQL都是中文的。
  参考:

http://topic.csdn.net/t/20060324/18/4638303.html
4.其它还有什么方法提高数据库查询效率
合理使用索引    
  索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下:    
  ●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。    
  ●在频繁进行排序或分组(即进行group   by或order   by操作)的列上建立索引。    
  ●在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。  
  ●如果待排序的列有多个,可以在这些列上建立复合索引(compound   index)。    
  ●使用系统工具。如Informix数据库有一个tbcheck工具,可以在可疑的索引上进行检查。在一些数据库服务器上,索引可能失效或者因为频繁操作而使得读取效率降低,如果一个使用索引的查询不明不白地慢下来,可以试着用tbcheck工具检查索引的完整性,必要时进行修复。另外,当数据库表更新大量数据后,删除并重建索引可以提高查询速度。  
不同编码字节长度测试代码:
System.Text.Encoding.Unicode.GetByteCount(StrTest);
System.Text.Encoding.UTF8.GetByteCount(StrTest);
System.Text.Encoding.GetEncoding("GB2312").GetByteCount(StrTest);