Jef*_*rey 3 java database jdbc
我有一个数据库,我需要插入批量数据(一次大约500k记录).我正在使用derby进行测试,并且看到这么多记录的插入时间大约为10-15分钟(我在Java中进行批量插入).
这个时间看起来很慢(适用于普通笔记本电脑)吗?是否有加快速度的方法?
谢谢,
杰夫
这一次看起来非常合理,与我观察到的时间一致.如果您希望它更快,您需要使用批量插入选项并禁用安全功能:
编辑:数据库事务受磁盘I/O的限制,在笔记本电脑和大多数硬盘驱动器上,重要的数字是磁盘的寻道时间.
笔记本电脑往往有相当慢的磁盘,转速为5400转.在此速度下,寻道时间约为5毫秒.如果我们假设每条记录一次搜索(在大多数情况下估计过高),则插入所有行需要40分钟(500000*5 ms).现在,使用缓存机制和排序机制可以减少这种情况,但您可以看到问题的来源.
我(当然)大大过分简化了这个问题,但是你可以看到我的目标; 期望数据库以与顺序批量I/O相同的速度执行是不合理的.您必须对记录应用某种索引,这需要时间.