Я пытаюсь реализовать принятый ответ из этот вопрос для генерации идентификатора и использование XML-файлов для хранения моего контента и таблицы идентификаторов контента.
Идея состоит в том, что каждый элемент контента будет храниться (сериализоваться) как my-content-item-slug-374871.xml, где число — это случайный идентификатор, который элементу контента будет присвоен из таблицы идентификаторов (из тех, которые не пока не принято). Мое требование состоит в том, чтобы идентификатор был шестизначным числом (требования к отображению) от 100000 до 999999, поэтому фактически мы сможем создать только 899999 элементов контента, но этого должно быть достаточно. Если вам интересно, почему такое требование, я могу только сказать, что мне не нужны идентификаторы, начинающиеся с нуля, и мне не нужны идентификаторы, такие как GUID (которые было бы намного проще создавать и поддерживать, я знаю), потому что идентификатор будет используется в маршрутах MVC (так же, как URL-адреса SO).
Итак, для начала я решил создать словарь, где ключ — это идентификатор, а значение определяет, используется он или нет (true, если используется, false, если доступно). Затем я сериализую этот объект в файл XML, используя DataContractSerializer.
Файл имеет размер 72 МБ, и здесь, я думаю, начинают проявляться проблемы. Прежде всего, я только что попытался открыть этот файл в VS2010, Блокноте, Wordpad и IE, и все они разбились, а потребление памяти резко возросло. Но у приложения вроде с этим проблем нет. Тем не менее, я думаю, что это будет огромный объем памяти, а производительность процессора пострадает.
Прав ли я в своих предположениях, и если да, то какие у меня есть другие варианты?