在使用java的mysql中,获取一个记录的多个连接与获取所有记录的一个连接

gev0vcfq  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(331)

我有一个ftp服务器,我每10分钟得到一个文件列表。ftp服务器通常有一百万个文件。文件列表必须唯一地插入到数据库中。所以我想先检查文件名是否存在于数据库中。我有两个解决方案:
1-对于ftp服务器中的每个文件,连接到数据库并检查文件名是否存在(多个连接)
2-首先获取数据库中的所有记录(一个连接)并存储在arraylist中,对于ftp服务器中的每个文件,检查arraylist中是否存在包含文件名。
哪种解决方案更好?对于解决方案2,我关心内存使用。我使用jdbc驱动程序连接数据库。

7lrncoxx

7lrncoxx1#

在插入到数据库之前,可以确保文件名不存在。这样你就不需要把任何东西复制到 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
)

相关问题