У нас есть одна довольно большая таблица, содержащая информацию о документах вместе с путями к файлам, указывающими на файлы в файловой системе.
Через пару лет мы заметили, что у нас есть файлы на диске, на которые нет ссылок в таблице БД, и наоборот.
Так как в настоящее время я изучаю Clojure, я подумал, что было бы неплохо создать небольшую утилиту, которая может найти разницу между БД и файловой системой. Естественно, поскольку я начинающий, я застрял, потому что есть более 600 000 документов, и, очевидно, мне нужно более производительное и менее потребляющее память решение:)
Моя первая идея состояла в том, чтобы сгладить список деревьев файловой системы со всеми файлами и сравнить его со списком из базы данных, если файл не существует, поместить в отдельный список «несуществующий» и если какой-либо файл существует на жестком диске, а не в DB, переместите его в какую-нибудь директорию дампа.
Есть идеи?