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