Powiedziałbym, że wiele zależy od wydajności twojego podstawowego sprzętu/systemu plików/mysql. Pojedynczy dostęp do dysku, tylko w celu odczytania obrazów, będzie najprawdopodobniej najszybszą opcją. Ale musisz najpierw ręcznie nazwać swoje pliki.
Mysql wymaga połączenia z gniazdem TCP lub *NIX, co może spowolnić działanie (wiele zależy jednak od liczby zdjęć, które posiadasz, i "jakości" twojego łącza db). Jeśli masz dużo plików, spadek wydajności może być znikomy. Samo czytanie z pliku może być jednak szybsze, bez zawracania sobie głowy konfiguracją połączenia z bazą danych; nadal będziesz musiał zapisać korespondencję z identyfikatorem/nazwą pliku dla zamówienia.
Coś, co chciałbym wypróbować w twojej sytuacji, to przyjrzeć się poleceniu php stat i sprawdzić, czy może ci pomóc w sortowaniu zdjęć. W zależności od liczby posiadanych zdjęć (działa lepiej przy niższych wartościach), wydajność może nie osiągnąć poważnego spadku wydajności i NIE będzie możliwe prowadzenie oddzielnej listy krotek obrazu/daty utworzenia. W miarę wzrostu liczby zdjęć podejście do listy plików wydaje mi się rozsądnym sposobem rozwiązania problemu. Jednak samo porównanie rzeczy w miarę wzrostu liczby zdjęć może powiedzieć prawdę. Ponieważ myślę, że możesz spodziewać się dużej zmienności, w zależności od konkretnego kontekstu.