我有一个名为DATA的表 在此表中,第一列是UUID 在此表中,第二列是名称 那就是它。
现在,我的DATA表中目前有1,057 uuid / name。 我的计算机上的文本文件中还有200个uuids列表。
运行200个查询以返回与我的200 uuids相关联的名称是否安全?
如果我想多次这样做,说每分钟都会遇到任何问题?
如果可能,需要多长时间?
答案 0 :(得分:0)
最好将数据保存在数据库中以加快处理速度,而不是每次都从文件系统中读取数据。
现在,让我们考虑你仍然坚持在DB中的文件中存在200个UUID。我建议,您可以通过使用存储这200个UUI的中间缓存来最好地处理。这样可以防止每五分钟读取一次文本文件,而是根据缓存超时时间进行读取。
答案 1 :(得分:0)
尽管200个查询对于索引良好的数据库来说并不算什么,但是这里有一些比使用文本文件每分钟运行查询更好的选项。
首先,确保将UUID列编入索引。这将使查询O(1)而不是每次都扫描整个表。
然后,您可以使用大型IN子句执行单个查询,而不是对每个UUID执行查询。
SELECT whatever
FROM data
WHERE id IN (list, of, uuids, ...)
最后,您可以将感兴趣的UUID放入自己的表中,然后加入其中,而不是拥有一个大文本文件。这为您提供了数据库带来的并发性的所有好处,并且您的所有数据都在一个地方。
INSERT INTO users_of_interest
(id)
VALUES (...), (...), (...), ...
SELECT users.*
FROM users_of_interest
JOIN users ON users_of_interest.id = users.id
然后,您可以在列表更改时插入和删除users_of_interest。请务必在交易中执行此操作,以避免其他人在您进行更改时进行更改。