暂无图片
oracle的基数会影响到查询速度吗?
我来答
分享
暂无图片 匿名用户
oracle的基数会影响到查询速度吗?

oracle的基数会影响到查询速度吗?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
张sir

基数会影响优化器对cost的评估,最简单的就是比如一个查询:

select * from test where id=1 and sex='male';   

id和sex两个字段上都有单独的索引,而id列的基数大,sex列的基数小,那么数据库在评估执行计划的时候会考虑优先使用id列上的索引。id列的基数大,选择性好,那么在扫描的时候io量就少。最终评估出的cost就小。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
刘贵宾

我觉得不会,但是在基数小的字段上使用位图索引是能够提高查询速度的

标准索引是通过在索引中保存排序过的索引列以及对应的ROWID来实现的。若我们在基数小的列上建立标准索引的话,则其会返回大量的记录。

而当我们在创建位图索引的时候,在Oracle会对整个表进行扫描,并且会为索引列的每个取值建立一个位图。若内容相同,则在位图上会以一个相同的数字表示。此时,若这个字段的基数比较小的话,则若需要实现对整个字段的查询的话,效率就会非常的高。因为此时,数据库只要位图中数字相同的内容找出来即可。

暂无图片 评论
暂无图片 有用 0
打赏 0
布衣
暂无图片
基数 一个列中唯一键(Distinct_keys)的个数,如有一个100W行的表,性别列的基数为2 (select distinct gender from test),主键列的基数为100W(select distinct mid from test); 选择性 基数/总行数所占的百分比,性别 2/100w * 100% 主键 100% 选择性越高 越有利于使用索引 20~30%就算是比较高了 1、如何判断是一个索引创建的是好还是坏呢? 就看他的基数和选择性 如果基数大选择性大 那么使用索引就比较好
复制

基数的改变景响到的索引的选择性,肯定会影响查询速度。
以上为个人观战,如果不对的地方,仅供参考。
希望对你有所帮助。如果感觉答案满意,请点采纳,谢谢

暂无图片 评论
暂无图片 有用 0
打赏 0
薛晓刚

快慢和全表大小没有直接关系。和用不用索引,以及返回行数有关。如果就是主键查询,100亿也没有问题。我以前单表100亿,性能良好。不仅仅是主键查询,范围查询也有。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
有一个两节点的ADG环境,主库1个,备库1,现在要新增一个备库,能不能在原有的备库上rman备份,用来恢复一个新备库?这样就不用消耗主库的资源了。
回答 2
已采纳
只能从主库rman备份
Oracle删除某张表的大数据量,怎么快速删除?大概有两亿条数据
回答 1
已采纳
只有droptable和truncatetable才能快速删除这么多的数据。如果表是分区表,直接drop对应分区即可。如果表中删除掉数据后只剩少量数据,则先新建一个临时表将要保留的数据插入到临时表中。
DG数据库无法同步
回答 6
3795
connect by的子节点如何获取各自根节点id
回答 2
知道了,通过connectbyroot可以查找
gbk字符集number(16,2)列部分值不显示(排除值为空),请教大神们帮忙看下问题出在哪里
回答 4
看上去像磁盘数据损坏,与字符集无关
在select语句中,何时使用分组子句?何时不必使用分组子句?
回答 1
已采纳
select语句中使用分组子句的先决条件是要有集合函数。当集合函数值与其他属性的值无关时,不必使用分组子句;当集合函数值与其他属性的值有关时,必须使用分组子句。
Oracle 一般情况下分区表建全局索引吗?
回答 2
已采纳
分区应用:一般一张表超过2G的大小,ORACLE是推荐使用分区表的,分区一般都需要创建索引,说到分区索引,就可以分为:全局索引、分区索引,即:global索引和local索引,前者为默认情况下在分区表
库高速缓存和 数据缓冲区有 什么区别?
回答 2
已采纳
buffer偏重于写,而cache偏重于读,感觉有一些类似;缓冲:缓解冲击,缓存:临时存储缓冲区:高速设备与低速设备缓冲区域,性能差异缓存区:一个数据存放位置,比如内存中开辟一个区域存放数据,当执行程
Oracle创建表分区后,查询的时候不给出partition,但是会给分区字段指定的值,会不会自动按照分区查询?
回答 1
已采纳
会:例:数据准备:CREATETABLEt1(idnumber,CDNUMBER(8)NOTNULL)PARTITIONBYRANGE(CD)(PARTITIONt1RANGE10VALUESLESS
Oracle 能从归档里恢复单张表的数据吗?
回答 2
如启用了FLASHBACK,可通过闪回方式恢复
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~