java - 如何向数据库中插入百万条数据

标签 java multithreading junit oracle10g

我正在尝试将 100 万条记录插入到数据库表中。

我想创建至少 3 个线程,每个线程触发一个插入,然后我们可以在每一秒内获得 3 个并行请求。我们可以通过让每个线程等待和唤醒来控制插入的触发完全同时发生一起达到同一个中断。然后每个线程进入休眠状态,直到 1 秒窗口结束。然后整个过程将重复。我怎样才能完成它?

任何建议或提示都会有所帮助。

最佳答案

插入大量数据被认为是一种不好的做法。插入大量数据会花费很多时间,而您可以使用sqlloader或类似工具直接将数据加载到表中。这些加载器速度更快,因为它们不会导致事务管理的开销。

当我有大量数据要加载到数据库中时,我会问自己一些问题。

  1. 这是引用/静态数据(如国家、城市、银行)
  2. 此动态数据是由应用程序生成的/通过使用应用程序生成的(例如账单、通话记录、付款、帐户 Activity )。

大多数情况是情况 1,在这种情况下,sqlloader 是首选。

由于数据迁移/升级可能会出现其他情况(2),在这种情况下也首选sqlloader。

基于以上解释。您可以选择更好地描述您的问题或选择 sqlloader。

关于java - 如何向数据库中插入百万条数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38135973/

相关文章:

java - 使用 Java 打开 Photoshop 等应用程序

Java Splunk 最佳日志记录格式

linux - 用于查看线程何时处于事件状态的系统 API

C# .Net exe 在 PC 重新启动时不会关闭,从而使机器无法重新启动

c - 将 pthread_t 传递给函数时出现奇怪的错误

java - 如何将 Cucumber JUnit 步骤标记为失败但继续

java - Lucene QueryParser 需要与具有 stopfilter 和 porterstemfilter 的自定义分析器一起工作

java - 扫描仪system.in,不读取第1、3、5等输入

java - 如何使用mockito模拟exchange.getIn().getBody(HttpServletResponse.class)

java - 编写更好的 JUnit 参数化测试用例