ITPub博客

首页 > 数据库 > 数据库开发技术 > 被颠覆的数据库常识

被颠覆的数据库常识

原创 数据库开发技术 作者:wangzh3 时间:2007-03-10 10:06:21 0 删除 编辑

他们在组织oracle的培训,培训前先发了几个问题给要参加的人,让他们不参考资料的情况下回答一下,摸摸底.他们就拿过来给我看了一下,如下是问题.很多人的答案都应该差不多.实际上不是那么准确的.所以要颠覆一下认识吧.

Q1:VARCHAR2和CHAR两种数据类型的区别?

对于这个问题,绝大多数的资料和绝大多数的人都会这么回答:varchar2更节约空间.因为char(n)无论实际存了几个字符,占用的空间都是n个字符.varchar2不同.实际用了几个,然后再加一个指示长度.

正确的答案:varchar2(n)和char(n)的区别如,varchar2(n) 当n<2000的时候,定义的是多少,无论实际存了几个字符,占用的空间就是n.当大于2000的时候,会按照实际占用的加1.varchar2比char效率高(这个是为什么,不知道.oracle的文档只是这么说,没有提出理论或者分析.)

Q2:索引对于表的查询和更新操作在性能上的不同影响

大多数人的理解:利用索引,查询会快,更新和删除会慢.

正确的理解应该是:利用索引,查询不一定会快.理由如下: 一个数据量很小的表.可能只占用了一个block.如果利用所引,需要读索引的block,再读数据的block.所以多读了一个block.可能就会慢.或者读取一个很大的表的全部数据.利用所引需要读所有的索引block加所有的数据block.不如全表扫描不用索引,不需要读索引block.

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/47869/viewspace-903709/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 葛优这个孩儿
下一篇: 疙瘩汤
请登录后发表评论 登录
全部评论
  • 博文量
    301
  • 访问量
    10875976