2010-12-10 67 views
1

我有一個數據庫完整的圖像ID,這些ID對應於存儲在服務器上的圖像的文件名。我想檢查圖像目錄中的所有文件是否存在於數據庫中,如果不存在,則返回的數組,其中不存在存在於數據庫中。PHP - 查看數據庫中是否存在多個文件的好方法?

目前我使用scandir來獲取目錄中的文件數組,然後從SQLite數據庫中檢索所有圖像ID,並使用array_diff返回數據庫中已存在的所有文件。

我不認爲這是一個非常有效的方法,尤其是當服務器上的文件數量增加時。我使用PHP。

回答

2

您可以在查詢數據庫之前對文件名稱數組進行排序,然後在從數據庫查詢(也按文件名排序)檢索結果時掃描該排序數組。

但是,由於陣列操作是在內存中進行的,因此您的當前解決方案很好,因此相當便宜。

你做什麼想要做的是:

  1. 中查找文件系統中的文件單獨
  2. 查詢數據庫中的每個文件

無論是哪種操作相當昂貴。幾乎任何其他解決方案都可以,直到您獲得100,000個文件。

相關問題