用10萬行填充數據庫表的最快方法是什麼?我正在詢問這種技術,但也想了解任何特定的數據庫引擎,以便儘可能快地實現這一點。我「米不要求這個數據這個初始數據表人口中建立索引。用10萬行填充數據庫表的最快方法
回答
使用SQL將大量數據加載到數據庫通常會導致較差的性能。爲了快速完成任務,您需要繞過SQL引擎。大多數數據庫(包括我認爲的Firebird)都能夠將所有數據備份到文本(或可能是XML)文件中,並從這樣的轉儲文件恢復整個數據庫。由於恢復過程不需要事務感知,並且數據不表示爲SQL,因此通常非常快速。
我會寫一個手動生成轉儲文件的腳本,然後使用數據庫的恢復實用程序來加載數據。
經過一番搜索,我發現FBExport,似乎能夠做到這一點 - 你只需要生成一個CSV文件,然後使用FBExport工具將該數據導入到數據庫中。
使用MySQL或MS SQL和嵌入式功能,生成的數據庫引擎中的記錄,或者生成一個文本文件(像格式CVS)和然後使用批量複製功能。
的最快方法可能是與SELECT運行的INSERT SQL語句而來。我已經生成的測試數據來填充其他數據庫中的表,甚至在同一個數據庫的次數。但這一切都取決於你自己的數據的性質和可用性。在我的情況下,我有足夠的行數據收集數據,其中有幾個選擇/插入程序隨機行選擇應用程序用巧妙的方法對真實數據進行編輯,可以快速獲得體面的測試數據。在某些情況下,表中的數據被唯一地識別我用中間表和頻率分配排序,以消除等不常見的名稱的東西(消除實例,其中通過用組計數是小於或等於2)
此外,Red Gate實際上提供一個實用程序來完成你所要求的功能。這不是免費的,我認爲這是Sql Server特有的,但他們的工具是頂尖的。這是值得的成本。還有一個免費試用期。
如果你不想支付或他們的實用程序,你可以想象建立你自己很快。他們所做的一切都不是魔術。一個體面的開發人員應該能夠在一兩天內敲出一個類似功能的Alpha /硬編碼版本的應用程序...
您可能對這個question的回答感興趣。它會將大量的CSV文件上傳到SQL Server(2005)數據庫。對於SQL Server,似乎SSIS DTS包是將數據批量導入數據庫的最快方式。
它完全取決於你的數據庫。例如,Oracle有一些名爲direct path load(http://download.oracle.com/docs/cd/B10501_01/server.920/a96652/ch09.htm)的東西,它可以有效地禁用索引,並且如果我理解正確,則會構建將寫入到客戶端磁盤的二進制結構,而不是發送SQL。
結合每個分區的分區和重建索引,我們能夠以相對較短的順序加載10億行(我不小孩)數據庫。 1000萬行是沒有的。
- 1. 使用唯一的「對」(郵編)填充數據庫表的最快方法
- 2. Sqlalchemy,python,用數據填充數據庫的最簡單方法
- 3. 什麼是填充MS SQL數據庫與大量數據的最快方法
- 4. 使用其他表格中的數據填充表格的最快方法
- 5. 訂單時填充熊貓數據框的最快方法
- 6. 從數據庫值填充數組的最有效方法?
- 7. 將一個表中數百萬行與另一個表中數百萬行進行比較的最快方法
- 8. 使用單個值填充數組的最快方法
- 9. 使用數據庫響應填充表的一般方法
- 10. 從MySQL數據庫獲取行和數據的最快方法?
- 11. 無法填充數據庫表
- 12. 從數據庫填充表
- 13. 填充數據網格的最快方式Hazelcast
- 14. 填充numpy數組與點距離的最快方法
- 15. 填充DynamoDb表的最佳方法
- 16. 無法使用數據庫中的數據填充表
- 17. 最快的方式填充一個Db
- 18. 用數據填充字節數組的最有效方法?
- 19. 等待從數據庫異步獲取數據以填充列表視圖的方法的最佳方法
- 20. 有沒有從數據庫表動態填充Enum的方法?
- 21. 使用themoviedatabase.org的數據庫填充我自己的數據庫,最佳做法
- 22. 更新數據表的最快方法
- 23. 將數千行插入mysql數據庫的最快方法?
- 24. 使用DataContext從LINQ查詢填充DataTable最快的方法
- 25. 最快的方法來將數據庫保存到數據庫
- 26. 使用ArrayList填充mysql數據庫行
- 27. 使用SQLite數據庫填充列表
- 28. 用數據庫中的數據填充jquery自動填充
- 29. 使用初始數據填充SQLiteDatabase的最佳方法?
- 30. MVC和EF 5種方法不填充數據庫表
您能詳細說明您嘗試填充數據庫的數據的性質嗎?如果是垃圾數據,只需在服務器上運行功能來插入虛擬行。如果數據被困在文件中,請考慮供應商特定的批量導入/ bcp工具。 – 2009-11-19 22:42:23
我現在所擁有的:Firebird數據庫,爲了測試目的想要填充數據。 – luvieere 2009-11-19 23:06:10