oracle 列上有null值适不适合建索引?

[复制链接]
查看11 | 回复3 | 2017-1-20 11:04:31 | 显示全部楼层 |阅读模式
有一个财务表a大概有9千万数据,有一个银行账号的字段account_no,其中account_no为null的大概有1500万。除了null值其他记录值基本不重复。
现在我需要对该字段检索,例如select * from a where account_no ='111111111111';
是否需要在此字段上建索引或者建什么样的索引?
我自己的理解是 能建索引的,也测试了下查询性能提升很大,但网上百度了下反而把我看懵了,有哪位能给我详细指点下?谢谢

回复

使用道具 举报

千问 | 2017-1-20 11:04:31 | 显示全部楼层
挺适合建索引的呀,索引只是不记录空值而已。
select * from a where account_no is null 这样的查询,索引就没必要

回复

使用道具 举报

千问 | 2017-1-20 11:04:31 | 显示全部楼层
当然可以建,而且应该建,空值不影响B树索引的使用,
回复

使用道具 举报

千问 | 2017-1-20 11:04:31 | 显示全部楼层
你业务有这样的谓词查询,当然要建立.
where account_no ='111111111111';
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行