哪個選項更好,更快? 插入數據後在空表上創建索引或創建唯一索引後插入數據。我有大約10M行插入。哪個選項會更好,這樣我的宕機時間最少。在空表上創建索引後插入數據或在Oracle上插入數據後創建唯一索引?
9
A
回答
19
先插入您的數據,然後創建您的索引。
每次執行UPDATE,INSERT或DELETE操作時,表中的任何索引都必須更新。因此,如果您先創建索引,然後再插入10M行,那麼索引也必須更新10M(除非您正在執行批量操作)。
6
插入記錄然後在導入行後創建索引會更快更好。速度更快,因爲插入行時沒有索引維護的開銷,並且從索引上的碎片角度來看它更好。
顯然,對於唯一索引,請確保您要導入的數據是唯一的,以便在嘗試創建索引時沒有失敗。
2
正如其他人所說,先插入並在稍後添加索引。如果表已經存在並且您必須插入一堆數據,請刪除所有索引和約束,插入數據,然後重新應用您的索引,然後重新應用您的約束。你一定會想要做中間提交來幫助排除你會用完回滾段空間或類似的東西。如果你插入這麼多的數據,看看使用SQL * Loader來節省你的時間和惡化會很有用。
我希望這會有所幫助。
相關問題
- 1. 在排序數據上創建索引
- 2. ORACLE在索引表上插入性能
- 3. EF CodeFirst - 在數據庫創建後創建索引
- 4. 創建數據庫索引Vs用戶爲表創建索引
- 5. 無法在創建關聯後插入數據 - Ruby上的Rails
- 6. MongoDB:插入唯一索引
- 7. 創建索引數據幀
- 8. 插入數據如果表存在或創建表並插入數據
- 9. TSql,在數據輸入之前或之後建立索引
- 10. 在SQLite.swift數據庫創建後插入初始數據
- 11. 在數據加載之前或之後創建Oracle SQL索引是否更好?
- 12. 如何在Oracle中創建唯一索引但忽略空值?
- 13. 創建Oracle表索引
- 14. 在URL列上創建主鍵或唯一索引
- 15. 在MySQL中使用值插入創建冪等表和索引
- 16. 在臨時表列上創建索引是否唯一?
- 17. 如何在非唯一的表上創建索引?
- 18. 檢測已插入數據mysql的唯一索引
- 19. 插入重複的數據與唯一索引
- 20. 在pyarango arangodb中創建唯一索引
- 21. 在Objectbox中創建唯一索引
- 22. 創建數據庫,表和插入數據,並在android中檢索它
- 23. 如何在索引視圖上創建空間索引?
- 24. 的MySQL創建索引名與空白唯一索引
- 25. 在表變量上創建索引
- 26. 表創建,但數據未插入
- 27. 插入索引列有大量數據
- 28. 在Mac OSX上創建的RSQLite數據庫沒有在Windows上插入數據
- 29. Oracle:創建唯一索引,但忽略空值
- 30. 如何在海量數據上創建索引(mysql)
「中,你是節約資源或使事情誤以爲常犯走得更快不僅會爲您提供: Ø會降低你的,是的,這是正確的,會降低你的 - 讓你運行SLOOOWWWWEEERRR o不保存任何資源,事實上,它消耗更多(您生成更多重做) o嚴重質疑數據的完整性「 – Angelina 2014-05-27 18:52:39