PHP - 查看数据库中是否存在多个文件的好方法?

时间:2010-12-10 07:43:42

标签: php arrays sqlite

我有一个充满图像ID的数据库,这些ID对应于存储在服务器上的图像的文件名。我想检查图像目录中的所有文件是否都存在于数据库中,如果没有,则返回 的数组 。数据库中。

目前我正在使用scandir获取目录中的文件数组,然后从SQLite数据库中检索所有图像ID,并使用array_diff返回已存在的所有文件D B。

我认为这根本不是一种非常有效的方法,特别是当服务器上的文件数量增加时。我正在使用PHP。

1 个答案:

答案 0 :(得分:2)

您可以在查询数据库之前对文件名数组进行排序,然后在从数据库查询中检索结果时扫描此已排序的数组(也按文件名排序)。

但是,您当前的解决方案很好,因为阵列操作是在内存中进行的,因此相当便宜。

你做的 想要做的是:

  1. 单独查找文件系统上的文件
  2. 分别查询数据库中的每个文件
  3. 这些操作中的任何一个都非常昂贵。几乎任何其他解决方案都可以正常运行,直到你获得100,000个文件。