用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