困惑,单列表建索引后,表跟索引有区别吗?

[复制链接]
查看11 | 回复4 | 2015-3-6 11:57:31 | 显示全部楼层 |阅读模式
有表a中仅有一列col1,列值不重复~~~~
再该列建b-tree索引,这个时候索引跟表有什么区别?除了大小不同外~~
这个时候查询表a,全表查询和索引查询是不是也应该没有效率区别?
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
索引是按照索引key来搜索的,这个是很快的。
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
当然不一样。
好好理解一下 b*tree的结构
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
最初由 alantany 发布
[B]索引是按照索引key来搜索的,这个是很快的。 [/B]

我觉着索引是保存了列值及列所在rowid信息,同时排序~~~
如果表也只有1的列的话,那列存储的信息跟索引存储的信息就是一致的,怎么会有效率上的差异呢
回复

使用道具 举报

千问 | 2015-3-6 11:57:31 | 显示全部楼层
最初由 junsansi 发布
[B]
我觉着索引是保存了列值及列所在rowid信息,同时排序~~~
如果表也只有1的列的话,那列存储的信息跟索引存储的信息就是一致的,怎么会有效率上的差异呢 [/B]

比如一张表存储:
1,2,3,4,5,6,7,8,9,10
我要查找2,如果对于表:
要全部把表扫描一遍,找到2.
而对于索引:
我可能首先把2定位在小于5上,这样搜索范围缩小一半,在把它定位到小于3上,搜索范围又小了一般,然后比较从1,2里面选出2来,你说那个快。
有一个猜数字游戏和这个非常一样,你一定知道:
比如你记住一个小于100的数字,我问你几次之后,我就可以才出这个数字。这个次数要远远小于我一个一个问你:
是不是1啊,是不是2啊,3啊.......


如果你建成索引表,就是你需要的结果。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行