Gab*_*iel 7 java mysql performance jdbc
所以我有一个数据库,其中有很多数据从java应用程序插入.usualy我插入到table1中获取最后一个id,然后再次插入table2并从那里获取最后一个id,最后插入table3并获取该id并在应用程序中使用它.我每隔10-15分钟插入大约1000-2000行数据.
在生产网络服务器上使用大量小插入和选择并不是很好,因为它有时会使服务器陷入困境.
我的问题是:有没有办法如何在不使用如此大量的选择和插入的情况下将多个数据插入table1,table2,table3?我缺少一个sql-fu技术吗?
由于您可能依赖于auto_increment主键,因此您必须一次执行一次插入操作,至少对于table1和table2.因为MySQL不会给你超过最后生成的密钥.
你永远不必选择.您可以使用该getGeneratedKeys()
方法从Statement中获取最后插入的id .请参阅连接器/ J的MySQL手册中显示的示例:
其他建议:
INSERT
对table3 使用多行语法.ALTER TABLE DISABLE KEYS
时要导入,而当你完成重新启用它们.遗憾的是,您不能使用最快的方法来批量加载数据LOAD DATA INFILE
,因为这不允许您获取每行生成的id值.
归档时间: |
|
查看次数: |
735 次 |
最近记录: |