【问题标题】:PHP - Good way to see if multiple files are present in a database?PHP - 查看数据库中是否存在多个文件的好方法?
【发布时间】:2010-12-10 07:43:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: php arrays sqlite


    【解决方案1】:

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

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

    想做的是:

    1. 单独查找文件系统上的文件
    2. 单独查询数据库中的每个文件

    这些操作中的任何一个都非常昂贵。在您获得 100,000 个文件之前,几乎任何其他解决方案都可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-13
      • 2012-08-29
      • 2021-12-11
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      相关资源
      最近更新 更多