Найти - Пользователи
Полная версия: поиск в базе (не загружая всё в память)
Начало » Базы данных » поиск в базе (не загружая всё в память)
1 2
mrgloom
вообщем задача такая.
есть папка в ней много папок(предположительно пара мильёнов), а в папках есть файлы от 0 до 300 примерно.
проходимся по всем папкам и считаем MD5 файлов, получаем список структур (название папки,список MD5 стрингов).

потом допустим на вход программы подаётся файл у него считается MD5 и надо найти к какой папке относится файл.

как это лучше всего реализовать?

сделать просто базу данных типа ключ название папки - содержимое список стрингов MD5?


п.с. MD5 не принципиально, просто для примера.
mrgloom
наверно лучше перенести в базы данных.
fata1ex
Если смотреть только на эту задачу, то подойдет любое key-value хранилище. Ключом логично сделать md5 файла, а содержимым будет список имен папок, в которых он находится.
odnochlen
mrgloom
наверно лучше перенести в базы данных.
Модерам пофиг же.

mrgloom
MD5
MD5 использовать не рекомендуется, вместо него лучше брать SHA2 и, если надо, обрезать.
mrgloom
odnochlen
MD5 использовать не рекомендуется, вместо него лучше брать SHA2 и, если надо, обрезать.
почему?
Lexander
odnochlen
MD5 использовать не рекомендуется, вместо него лучше брать SHA2 и, если надо, обрезать.
Для хеширования? С чего й то?
Последний раза в 2 медленнее MD5.
Вот еще бенч: http://tanjent.livejournal.com/756623.html
Я бы вообще в сторону CRC посмотрел, как самый распространенный, если имеющееся количество элементов не дает коллизий.

А вообще система сама хранит уникальный идентификатор каждого файла, поэтому его считать не нужно.
Например, под Вин GetFileInformationByHandle выдает нужную информацию.
Обратите внимание на get_unique_id.

Под Линукс есть свои функции.
odnochlen
Lexander
С чего й то?
http://ru.wikipedia.org/wiki/MD5#.D0.9A.D0.BE.D0.BB.D0.BB.D0.B8.D0.B7.D0.B8.D0.B8_MD5
slav0nic
odnochlen
ну не всё на столько плохо) в дебиане например пока MD5 (но хотят заменить), хотя из коллизий в молодости находил несколько пар одинаковых файлов (по чексуме) на двд
Lexander
odnochlen
Да я в курсе. У SHA-2 тоже коллизии, вследствие чего разрабатывают SHA-3.
О другом речь, зачем тяжелый SHA2 использовать для хеширования?
mrgloom
у меня файлы ихображения и я считаю так
hashlib.md5(img.tostring()).hexdigest()
это как то влияет?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB