我有一个遗留的Java系统,该系统每次获得命令时都会对该命令中的每个字段进行一个JDBC调用,以存储过程。通常,对于每个订单,存储过程将被调用20至30次。存储过程只是在每个字段的表中进行插入。
我需要改善此操作的性能。我曾经想过要创建一个插入查询字符串,该字符串在一个JDBC调用中进行多次插入。 MySql支持多个插入字符串。
INSERT INTO PersonAge (name, age)
VALUES ('Helen', 24),
('Katrina', 21),
('Samia', 22),
('Hui Ling', 25),
('Yumie', 29)
这样的好处是每个订单只需要一个JDBC调用。关于如何提高性能的其他想法?
最佳答案
创建一个准备好的语句或批处理更新(在Java中为PreparedStatement
或Statement.executeBatch()
)。准备好的语句可能会更快,因为您只需要将值提交到数据库,而不是整个查询。尝试每个,并运行基准测试。