2011-11-24 2 views
2

Мне нужно индексировать большое количество файлов и папок в базу данных. Будет около 1000 файлов/папок на рабочую станцию ​​и около 100 рабочих станций.Индексирование файлов в базу данных

Я буду постоянно синхронизировать эти файлы с базой данных, поэтому мне нужно сделать быстрый запрос к базе данных, чтобы узнать, есть ли файл в базе данных. Я думаю о хешировании полного пути файла с MD5 и индексировании этого хэш-поля в базе данных. Правильно ли это? Может ли встречаться хэш-столкновение с учетом 1-10 миллионов записей?

У меня есть выбор MySQL или MongoDB, я склоняюсь к MongoDB, согласны ли вы?

ответ

3

Стандартные индексы дерева B +, используемые MySQL, будут хороши для ваших целей, просто убедитесь, что вы используете InnoDB в отличие от MyISAM, чтобы избежать глобальных блокировок записи.

Если вы беспокоитесь о столкновениях, изучите механизмы хеширования, которые, как известно, не страдают от столкновений - попробуйте вариант MurmurHash или SHA.

Смежные вопросы