如何设计数据量大的表,可以提高查询效率?

yuanye2008 2007-02-02 11:13:01
我有一张表(t_table),该表数据量很大,而且逐年增加,每年增加的数据在200万条以上,该结构如下:
Id bigint NOT NULL auto_increment,
Version int NOT NULL,
Title VARCHAR2(100) not null,
Content VARCHAR2(2000) not null,
ClassId int not null,
STATE int not null,
CreatorId int not null,
CreateDate DATE not null,
Degree int,
ReplayerId int not null,

对他查询的语句如下:
select * from t_table
where state in (1,3) and
ClassId = 2 and
CreatorId=12 and
ReplayerId=13 and
CreateDate='2007-01-02' and
Degree = 1

这张表该如何设计,查询效率可以更高。oracle9i,刚开始用oracle,请大家多指教!
...全文
454 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hem 2007-02-06
  • 打赏
  • 举报
回复
定期给表加分区就可以了
netstring 2007-02-03
  • 打赏
  • 举报
回复
如果表记录在1000万以内可以不做分区, 建立适当的索引,这个查询还是很快的. 其实表的记录多少对于取其中的少量记录查询影响不大, 只要Cardinarity高, 建立适当的索引就可以达到要求.
hem 2007-02-02
  • 打赏
  • 举报
回复
按createDate 建分区表 ,可以10天一个分区。 也可以 按你需要查询的这些字段建立一个索引,一年200万不算多。
hongqi162 2007-02-02
  • 打赏
  • 举报
回复
查询字段建立索引
把*替换成字段名


没有什么可以优化的了
yuanye2008 2007-02-02
  • 打赏
  • 举报
回复
createDate 是动态不断增加的,如何才能使分区也随着时间的增加,而增加呢?

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧