我有一個數據庫,我需要插入批量數據(每次大約500k條記錄)。我正在用德比進行測試,並且看到大量記錄的插入時間約爲10-15分鐘(我正在使用Java進行批量插入)。Java大型數據庫插入
這段時間看起來是否緩慢(在平均筆記本電腦上工作)?有沒有辦法加快速度?
感謝,
傑夫
我有一個數據庫,我需要插入批量數據(每次大約500k條記錄)。我正在用德比進行測試,並且看到大量記錄的插入時間約爲10-15分鐘(我正在使用Java進行批量插入)。Java大型數據庫插入
這段時間看起來是否緩慢(在平均筆記本電腦上工作)?有沒有辦法加快速度?
感謝,
傑夫
這一次看起來完全合理,與我觀察到的時間一致。如果你想讓它跑得更快,你需要使用批量插入選項和禁用安全特性:
編輯:數據庫事務是由磁盤有限的I/O,並在筆記本電腦和大多數硬盤驅動器,最重要的數字是尋道時間的磁盤。
筆記本電腦往往有相當慢的磁盤,在5400轉。在這個速度下,尋找時間約爲5毫秒。如果我們假設每個記錄有一個搜索(大多數情況下估計過高),則需要40分鐘(500000 * 5 ms)插入所有行。現在,使用緩存機制和排序機制可以稍微降低這一點,但您可以看到問題來自何處。
我(當然)極大地簡化了這個問題,但是你可以看到我要去哪裏;期望數據庫以與順序批量I/O相同的速度執行是不合理的。你必須對你的記錄應用某種索引,這需要時間。
做的表有很多的指標?很多時間可能會花在更新這些索引上。
如果放置爲「評論」 – Joset 2010-02-19 19:50:14
,則它更合適其中只有2個索引。 – 2010-02-19 20:00:01
這很有道理。謝謝。 – 2010-02-19 20:01:17