许多连接获取一个记录VS一个连接用于使用java获取Mysql中的所有记录

时间:2018-06-10 07:34:19

标签: java mysql

我有一台ftp服务器,每隔10分钟就会得到一个文件列表。 ftp服务器通常有一百万个文件。必须在数据库中唯一地插入文件列表。所以我想在数据库存在之前检查文件名是否存在。我有两个解决方案:

1-对于ftp服务器中的每个文件,连接数据库并检查文件名是否存在(多个连接)

2-首先获取数据库中的所有记录(一个连接)并存储在ArrayList中,并且对于ftp服务器中的每个文件,检查包含文件名是否存在于ArrayList中。

哪种解决方案更好?对于解决方案2我关注内存使用情况。 我使用JDBC Driver连接数据库。

1 个答案:

答案 0 :(得分:0)

在插入数据库之前,您可以确保文件名不存在。这样,您无需将任何内容复制到List,然后检查List本身。类似的东西:

INSERT INTO table (col1, col2, col3)
VALUES (val1, val2, val3)
WHERE NOT EXISTS (
SELECT * FROM table WHERE 
table.col1 = val1 and table.col2 = val2 and table.col3 = val3
)