当前位置:数据库 > Oracle >>

【Oracle】-【索引】先查数据再建索引,还是先建索引再插数据

【Oracle】-【索引】先查数据再建索引,还是先建索引再插数据
 
问题:
 
1、新建一个表结构,创建索引,将百万或千万级的数据使用insert导入该表。
2、新建一个表结构,将百万或千万级的数据使用isnert导入该表,再创建索引。
 
这两种效率哪个高呢?或者说用时短呢?
我感觉无论先建还是后建索引,当有数据时都需要update索引数据,问题是有索引的情况下插数据与有数据的情况下建立索引,各自的消耗。
 
实验:
 
100w记录,
 
1、先创建表和索引,再插入数据,大约1.3min。
2、先插数据,再建立两个索引,create table xxx as select * from t where 1<>1;大约13秒,建立两个索引大约26秒和35秒。
 
总结:
 
如果先建立索引再插入数据,每次插入数据还需要修改索引信息。
 
实战还要看业务要求,有的业务可能还需要索引和约束对数据进行校验,这样就应该先建立索引了。如果是一次性处理,原则上先插数据后建索引。
 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,