Я ищу быстрое (как с огромной производительностью, а не быстрое исправление) решение для сохранения и извлечения десятков миллионов маленьких (около 1 тыс.) Двоичных объектов. Каждый объект должен иметь уникальный идентификатор для поиска (предпочтительно, GUID или SHA). Дополнительные требования заключаются в том, что он должен использоваться из .NET и не требует дополнительной установки программного обеспечения.
В настоящее время я использую базу данных SQLite с одной таблицей для этого задания, но я хочу избавиться от накладных расходов при обработке простых инструкций SQL, таких как SELECT data FROM store WHERE id = id.
Я также проверил прямую устойчивость файловой системы в NTFS, но производительность очень быстро падает, как только она достигает полумиллиона объектов.
P.S. Кстати, объекты никогда не нужно удалять, а скорость вставки очень и очень низкая. Фактически, каждый раз, когда объект изменяется, сохраняется новая версия, а предыдущая версия остается. На самом деле это требование для поддержки путешествий во времени.
Просто добавив некоторую дополнительную информацию в эту ветку:
В BLOB или не в BLOB: хранилище больших объектов в базе данных или файловой системе http://arxiv.org/abs/cs.DB/0701168