я не мог найти хорошее название для вопроса, это то, что я пытаюсь сделать:Лучший способ для хранения большого количества файлов в диске
- Это приложение .NET.
- мне нужно хранить до 200000 объектов (между 3KB-500 КБ)
- мне нужно хранить около 10 из них в секунду от множественных потоков
- Я использую binaryserialization перед хранением
- мне нужно получить доступ их позже целое число, уникальный идентификатор
Каков наилучший способ для этого?
- Я не могу держать их в памяти, как я буду получать OutOfMemory исключения
- Когда я храню их на диске в виде отдельных файлов, что возможные проблемы с производительностью? Это значительно снизит общую производительность?
- Должен ли я реализовать какое-то кэширование, например, объединить 100 объектов и записать его один раз в виде одного файла. Затем проанализируйте их позже. Или что-то подобное?
- Следует использовать базу данных? (время доступа не важно, поиска не будет, и я получаю доступ только пару раз по известному уникальному идентификатору). Теоретически мне не нужна база данных, я не хочу ее усложнять.
UPDATE:
- Я предполагаю, что база данных будет медленнее, чем файловая система, докажите меня неправильно, если вы что-то об этом. Вот почему я тоже склоняюсь к файловой системе. Но я действительно беспокоюсь о том, чтобы записать 200 КБ * 10 в секунду на жесткий диск (это может быть любой жесткий диск, я не контролирую аппаратное обеспечение, это настольный инструмент, который будет развернут в разных системах).
- Если я использую файловую систему, которую я буду хранить файлы в отдельных папках, чтобы избежать проблем, связанных с файловой системой (, так что вы можете игнорировать это ограничение)
ли уникальный идентификатор, предоставленный нам, или мы должны создать его? Если мы должны создать его, это нужно, чтобы выжить перезапуски системы? –
уникального идентификатор уже позаботился о при условии, –
Обратите внимание на обман, но смотрите: http://stackoverflow.com/questions/2230032/which-is-a-better-method-for- storage-images-folder-or-sql-server-as-binary –