表索引建立的疑问?!

[复制链接]
查看11 | 回复9 | 2016-1-7 20:57:31 | 显示全部楼层 |阅读模式
数据库817,操作系统WIN2003SERVER
现在有这么一张表,第一次要INSERT 大约100W的记录?然后每天可能会插入1000条作用的记录,由于该表要经常被用来查询,所以需要建立相关的索引,现在有几个问题咨询一下大家,这个索引什么时候建?是不是在第一次INSERT 之后 建立索引?
如果这样,那么以后经常INSERT ,或DELETE 少量记录对已经建立的索引是否有影响?会不会影响查询的速度?该怎么设计好?
回复

使用道具 举报

千问 | 2016-1-7 20:57:31 | 显示全部楼层
100W 怎么做都可以吧
回复

使用道具 举报

千问 | 2016-1-7 20:57:31 | 显示全部楼层
数据虽然不是很多,我是想请教怎么个做法合理?
回复

使用道具 举报

千问 | 2016-1-7 20:57:31 | 显示全部楼层
以后经常INSERT ,DELETE 少量记录对已经建立的索引肯定有影响啊,以后要定期重建索引的
回复

使用道具 举报

千问 | 2016-1-7 20:57:31 | 显示全部楼层
对于oracle而言,100w记录的管理根本不算什么,你几乎不需要考虑先建索引再插入,或是先插入再建索引之间效率差异~~
不过从长远考虑,如果表经常有大量数据的删除添加,那么是需要定期重建索引
回复

使用道具 举报

千问 | 2016-1-7 20:57:31 | 显示全部楼层
建个索引要花费好几十秒的时间,比较费事,定期重建,这个定期怎么确定?
回复

使用道具 举报

千问 | 2016-1-7 20:57:31 | 显示全部楼层
原帖由 wanghuayoko 于 2008-10-27 17:13 发表
建个索引要花费好几十秒的时间,比较费事,定期重建,这个定期怎么确定?

视你数据的更新率而定,如果索引键值在一定时间周期内频繁删除修改,删除及新增量占据总数据量的数十个百分点,那就有必要重建了
回复

使用道具 举报

千问 | 2016-1-7 20:57:31 | 显示全部楼层
Tom是不赞成REBUILD INDEX的,即使频繁删改。具体见:
http://asktom.oracle.com/pls/ask ... ON_ID:2913600659112
回复

使用道具 举报

千问 | 2016-1-7 20:57:31 | 显示全部楼层
原帖由 wanghuayoko 于 2008-10-27 15:57 发表
数据库817,操作系统WIN2003SERVER
现在有这么一张表,第一次要INSERT 大约100W的记录?然后每天可能会插入1000条作用的记录,由于该表要经常被用来查询,所以需要建立相关的索引,现在有几个问题咨询一下大家,这个索引什么时候建?是不是在第一次INSERT 之后 建立索引?
如果这样,那么以后经常INSERT ,或DELETE 少量记录对已经建立的索引是否有影响?会不会影响查询的速度?该怎么设计好?

primary key应该在开始建,因为一旦数据中有重码,再也建不起来了。其余索引可以第一批数据载入后建。只要索引不太多,不太复杂,对性能影响不大。
回复

使用道具 举报

千问 | 2016-1-7 20:57:31 | 显示全部楼层
修改索引的代价相对带来的性能来说,不值得貌似
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行