pstmt = conn
.prepareStatement("insert into loadtest (id,
data) values (?, ?)")
for (int i = 1i <= COUNTi++)
{
pstmt.clearParameters()
pstmt.setInt(1,
i)
pstmt.setString(2, DATA)
pstmt.execute()
}
MyISAM:246.6秒、InnoDB:360.2秒
方法2: 使用事务,不自动commit
Java code
复制代码
代码如下:
conn =
DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASS)
conn.setAutoCommit(false)
pstmt = conn
.prepareStatement("insert into loadtest (id, data) values (?, ?)")
for (int i = 1i <= COUNTi++) {
pstmt.clearParameters()
pstmt.setInt(1, i)
pstmt.setString(2, DATA)
pstmt.execute()
if (i %
COMMIT_SIZE == 0) {
conn.commit()
}
}
conn.commit()
InnoDB:31.5秒
常见的insert语句,向数据库中,一条语句只能插入一条数据:insert into persons
(id_p, lastname , firstName, city )
values(204,'haha' , 'deng' , 'shenzhen')!
一般1w以内的数据量,效率差距不明显,超过1w以上,特别是表字段特别多的,效率就明显有差距了。这时可以考虑给经常查询的字段添加索引,以提高查询性能。
如果超过10w且效率明显很低的表,索引也优化过了,那就该考虑分表了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)