草庐IT

高速批量插入

全部标签

java - hibernate 性能问题,坚持一个接一个还是批量?

我有一个约6GB的文本文件,我需要对其进行解析并稍后保存。通过“解析”,我从文件中读取一行(通常为2000个字符),从该行创建一个Car-object,然后我坚持它。我正在使用生产者消费者模式来解析和持久化,我想知道一次持久化一个对象(出于性能原因)或在一次提交中持久化1000个(或任何其他数量)对象是否有任何区别?目前,我需要>2小时来持久化所有内容(300万行),这对我来说看起来时间太多了(或者我可能是错的)。目前我正在这样做:publicvoidpersistCar(Carcar)throwsException{try{carDAO.beginTransaction();//ge

java - 哈希表Java插入

我是Java的新手,正在尝试学习哈希表。我想将对象插入到我的哈希表中,然后能够在最后打印哈希表中的所有对象。我不确定我这样做是否正确,因为我读到我需要覆盖get()方法或hashCode()方法,但我不确定为什么。我正在传递学生姓名的String对象。当我在插入后运行调试器时,它将键显示为“null”,并且我插入的索引位于哈希表中的随机位置。前任。1,6,10这就是我一直在添加的方式。谁能告诉我这是否正确,我真的需要重写吗?提前致谢!代码HashtablehashTable=newHashtable();hashTable.put("Donald","Trump");hashTable

java - 向类型安全的异构容器中插入对象时,为什么需要类引用?

我正在检查Bloch的EffectiveJava中的异构容器模式,并试图确定为什么在将对象插入异构容器时需要类引用。我不能使用instance.getClass()来获取这个引用吗?不是JPA的entitymanager举个例子?interfaceBlochsHeterogeneousContainer{voidput(Classclazz,Tinstance);Tget(Classclazz);}interfaceAlternativeHeterogeneousContainer{//Classnotneededbecausewecanuseinstance.getClass()vo

java - linkedhashmap如何维护插入顺序

我知道Hashmap的内部工作原理。Linkedhashmap扩展了Hashmap类。那么Linkedhashmap是如何维护插入顺序的呢。我已经阅读了Linkedhashmap的javadoc,但没有关于此的任何详细信息。有人可以帮我理解这个吗?提前致谢。 最佳答案 http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html.实现背后的想法非常简单。它扩展了常规hashMap(因此它具有所有hashMap优点),但在添加元素时也构建双链表。(条目也是从

java - Spring Data JPA 通过从父实体获取 id 来插入子实体和父实体

我想通过对父实体调用save将父实体和子实体一起保存到MySQL数据库中。Parent和Child实体之间存在一对一的映射。父ID是自动生成的,我们也需要在child中使用与child的pk相同的ID。我正在使用SpringDataJPA2.0(JPA提供程序是Hibernate)和SpringMVC框架。当尝试插入实体时,出现以下错误。根本原因org.springframework.dao.DataIntegrityViolationException:not-nullpropertyreferencesanullortransientvalue:com.serro.cbmapi.m

java - 如何使用 mapreduce 批量更新满足查询的数据存储实体?

我想使用mapreduce库来更新满足查询的所有实体。有几个并发症:查找要更新的实体的查询检查a的值是否特定属性“property1”包含在一长串值中(~10000条目)来自csv文件对于满足查询的每个实体,需要更新另一个属性“property2”,使其等于csv文件同一行第二列中的值我知道如何将csv文件上传到Blobstore并使用Blobstore输入阅读器读取每一行。我还知道使用查询获取实体的数据存储输入读取器。我的问题是如何创建一个Mapper类来尽可能高效地从Blobstore读取输入数据、获取数据存储实体并更新它们? 最佳答案

java - 为什么基于 Java 的冒泡排序优于选择排序和插入排序

好的,我已经实现了冒泡排序、选择排序和插入排序。我正在使用Java.Random对象创建三个相同的十万个数字数组。我将这些依次传递给每个排序方法。我使用System.nanotime对结果进行计时。一些背景信息。我在选择和插入排序中遵循的排序算法来自FrankCarano的“Java中的数据结构和抽象第3版”,冒泡排序超出了我的想象。下面我提供了一个独立的类来执行所有这些。Carano的算法哪里出了问题我没看到?下面您将看到我正在计算基本操作的周期并计算完成时间。在运行时,循环次数可以忽略不计。对我来说,在查看完成时间时,Bubble是第一个,Selection是第二个,Inserti

java - 如何向Oracle 数据库插入50K 条记录?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭7年前。Improvethisquestion我有要求只将一些数据插入Oracle数据库到一个表而不是任何关系。我需要在同一个事务中插入超过50K条记录。做这个的最好方式是什么?使用纯JDBC、JPA或Hibernate等……哪种方式(批量更新或原始更新)更适合在同一事务中插入大约50000条记录?

java - 从 Java 插入到 SQL Server 时,我可以获得类似 "BULK INSERT"的速度吗?

在寻找从Java获取数据到SQLServer的最快方法的过程中,我注意到我能想到的最快的Java方法仍然比使用BULKINSERT慢12倍。我的数据是从Java中生成的,而BULKINSERT只支持从文本文件中读取数据,因此除非我将数据输出到临时文本文件,否则不能使用BULKINSERT。反过来,这当然会对性能造成巨大影响。从Java插入时,插入速度约为每秒2500行。甚至当我在for循环之后和executeBatch之前测量时间时。因此,在内存中“创建”数据不是瓶颈。使用BATCHINSERT插入时,插入速度约为每秒30000行。这两个测试都是在服务器上完成的。所以网络也不是瓶颈。关

java - 如何在 OpenTSDB(时间序列数据库)中插入数据

我是OpenTSDB的新手。我以某种方式设法安装和配置了OpenTSDB,但我不知道如何从客户端将数据放入OpenTSDB。你们谁能帮帮我吗? 最佳答案 你读过gettingstartedguide吗?您有多种选择。一旦启动,并通过./tsdbmkmetricmymetric.data_1mymetric.data_2创建指标,您可以批量导入以形式编写的文件metric_name时间戳值标签,例如mymetric.data_1129564363648a=foo然后你可以./tsdb导入文件另一种方法是以与上述相同的形式向服务器“te