Индексирование файлов в базу данных - PullRequest
2 голосов
/ 24 ноября 2011

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

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

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

1 Ответ

3 голосов
/ 24 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...