Я подумываю написать веб-сканер, который просто собирает URL-адреса страниц и ничего более (для проекта архивирования), но у меня есть проблемы с поиском правильного способа хранения результатов.
Требования заключаются в том, что какой бы механизм хранения ни использовался, он мог обрабатывать сотни тысяч элементов (желательно с возможностью добавления метаданных к каждой записи, хотя это и не обязательно), и чтобы существующие элементы можно было игнорировать (чтобы избежать дублирования) без значительное снижение производительности.
Двигатели, на которые я смотрел:
- MySQL: становится значительно медленнее проверять существующие элементы по мере роста базы данных.
- SQLite: та же проблема, что и выше, но еще хуже.
- memcache и Redis: набор данных может стать достаточно большим, чтобы сделать хранение в ОЗУ невозможным.
- MongoDB: не уверен, будет ли производительность приемлемой, если большая часть набора данных хранится на диске, на основе объяснение на их веб-сайте.
Что вы думаете о пригодности MongoDB (поскольку у меня нет опыта работы с большими наборами данных в MongoDB), и знаете ли вы о каких-либо лучших (бесплатных) механизмах хранения, существующих для этой цели?