Questions tagged «java»

1
无法看到MySQL提交的数据来选择查询
上下文:使用的框架是Spring,所有查询都使用JdbcTemplate运行。Mysql Server版本是5.6.19。和table是InnoDB table,默认设置为,并且设置了auto commit隔离级别可重复读取。 问题:Insert在事务内部发生的事情和select读取相同插入数据的事务看不到该数据。在select运行后,在insert之后的insert交易都有commited。 我已经启用bin日志以及mysql中的常规日志。以下相关日志 二进制日志: SET TIMESTAMP=1438265764/*!*/; BEGIN /*!*/; # at 249935389 #150730 14:16:04 server id 1 end_log_pos 249935606 CRC32 0xa6aca292 Query thread_id=40 exec_time=0 error_code=0 SET TIMESTAMP=1438265764/*!*/; insert into user_geo_loc_latest(user_id, lat, lng) values(x,y,z) on duplicate key update lat=y, lng=z /*!*/; # at 249935606 #150730 14:16:06 server id 1 …


3
大批量插入速度
在我的应用程序中,我的INSERT似乎花费了大量时间。我有大量的对象(〜40-50,000)要插入表中。 让我们拿一个样品表 CREATE TABLE bill ( id BIGINT(20) PRIMARY KEY, amount INT(11) DEFAULT 0, bill_date DATETIME DEFAULT NOW(), INDEX (bill_date) ) ENGINE=InnoDB 以3行作为我的批处理大小,以下是我可以想到的插入方法 方法1-构造并击发3个原始插件 INSERT INTO bill (amount, bill_date) VALUES (10, '2012-01-01 00:00:00'); INSERT INTO bill (amount, bill_date) VALUES (20, '2012-01-02 00:00:00'); INSERT INTO bill (amount, bill_date) VALUES (40, '2013-02-05 …
10 mysql  innodb  insert  java  jdbc 

2
为什么Oracle为补充unicode字符Chipmunk使用与Java不同的字节长度?
我有Java代码将UTF-8字符串修整为我的Oracle(11.2.0.4.0)列的大小,由于Java和Oracle将字符串视为不同的字节长度,最终引发了错误。我已经验证我NLS_CHARACTERSET在Oracle中的参数是“ UTF8”。 我编写了一个使用Unicode花栗鼠表情符号(🐿️)在下面说明我的问题的测试 public void test() throws UnsupportedEncodingException, SQLException { String squirrel = "\uD83D\uDC3F\uFE0F"; int squirrelByteLength = squirrel.getBytes("UTF-8").length; //this is 7 Connection connection = dataSource.getConnection(); connection.prepareStatement("drop table temp").execute(); connection.prepareStatement("create table temp (foo varchar2(" + String.valueOf(squirrelByteLength) + "))").execute(); PreparedStatement statement = connection.prepareStatement("insert into temp (foo) values (?)"); statement.setString(1, squirrel); statement.executeUpdate(); } …
8 oracle  java  utf-8  unicode 

3
从CSV文件批量更新/插入数据库
我正在实现从一个数据库到另一个数据库的特定于应用程序的数据导入功能。 我有一个包含10000行的CSV文件。这些行需要插入/更新到数据库中。 在某些情况下,数据库中可能存在几行,这意味着需要更新这些行。如果数据库中不存在,则需要将其插入。 一种可能的解决方案是,我可以一行一行地读取,检查数据库中的条目并相应地构建插入/更新查询。但是此过程可能会花费很多时间来创建更新/插入查询并在数据库中执行它们。有时我的CSV文件可能有数百万条记录。 还有其他更快的方法来实现此功能吗?
8 java  oracle 

2
Oracle 11g:插入的性能改进
我有一个5亿行的表格(并且还在不断增长) 我做了以下事情来提高插入的性能: 在数据库方面: 删除所有索引和约束 禁用日志记录 在应用程序方面: 从JPA管理的实体切换到本机插入查询,向查询添加了APPEND Oracle提示 尝试每1k / 2k / 3k行批量提交 尝试并行写入(多线程,线程数=服务器上的核心数)到一张表 这使我每秒大约300行 另外尝试: 批量并行写入多个表(使用UNION分组然后返回结果) 这使我每秒大约有1000行,但在空表上。但是,当我用虚拟数据(每个200百万个)填充表时,插入速度下降到每秒250-300个。 有人可以建议我做些什么来加快插入速度吗?基本上,我想首先了解瓶颈(可能是什么)。 UPD: 表格按插入日期进行分区,表格约有60列-大多数列为VARCHAR2(2000 BYTE)
8 java  oracle 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.