mysql 数据导入与索引建立
请问各位:数据库数据的导入,先create table, 然后是
1、用 load data local infile 这种形式导入数据文件
2、建立相关索引约束
1和2这两步的顺序对导入数据的效率有很大区别吗?
我最近自己测试了下, create 了一张表, 只有一个字段, 然后随机生成了1亿行每行8位数字的文件
第一次是 建完表之后立马建立索引, 然后再导入数据, 从早上9点到下午6点没有执行完成,放弃了
第二次是 建完表后, 先导入数据, 花费10分钟左右的样子导入完成, 然后再建立索引, 花费7个小时10分钟完成
虽然自己实验了一次, 但是没有具体的相关参考和经验, 不好妄下结论, 希望各位给点参考, 或谈谈经验 回复 1# elu_ligao
忘记在哪看到的建议,导入数据先导入再创建索引会快一些,并且建议是这样操作。假如用的是B+树索引,如果先建索引再导入数据的话,每导入一条数据都要去更新索引,而由于导入数据的不确定性可能导致创建的索引需要多次的进行维护(类似什么拆分页啊,旋转啊,分裂什么的我也不知道)用于保持树的平衡,这些会有一些磁盘操作从而降低速度。如果是完全导入完了再进行创建,由于数据都是确定了的,则可以统筹规划进行创建索引,减少磁盘操作。
HASH 索引不知道情况如何,希望楼主测试了分享一下 :D 多谢回复, 有进展会发出来
页:
[1]