Модель данных для приложения Winform C # - PullRequest
1 голос
/ 22 июля 2011

Я пишу программу winform со следующей моделью данных:

  • Структура данных описывается набором классов и подклассов
  • Как только я сохраню свои данные, яЯ сериализирую класс в файл XML.

Когда программное обеспечение работает, к данным должен быть доступ очень быстро (модель данных доступна от 50 до 60 в секунду.

Я планирую переместить хранилище данных из файла XML в облегченную базу данных.

У меня следующий вопрос: реалистично ли использовать базу данных не только для хранения, но и во время выполнения программы?потеря производительности?

Ответы [ 2 ]

2 голосов
/ 22 июля 2011

Если вам не нужно регулярно обновлять данные, а просто читать их, очень вероятно, что было бы лучше сохранить их в памяти.

Мы мало знаем о вашем приложении, поэтому мы не можем на самом деледать гораздо лучший совет здесь.Возможно, в вашем случае было бы достаточно просто сохранить XML в структуре XPathDocument, чтобы вы могли выполнять быстрый поиск с использованием запросов XPath.

Другой вариант может быть, если ваши данные в основном представляют собой пары ключ / значение,что вы читаете XML в словарь, а затем ищите этот словарь в своем приложении.

Но чтение из базы данных, даже легкой, вряд ли будет быстрее.Единственный встречный случай, о котором я могу подумать - это оптимизированная для чтения быстрая NoSQL-DB, такая как MongoDB.Но даже тогда мои деньги были бы на структуре данных в памяти, оптимизированной для поиска.

1 голос
/ 22 июля 2011

Если вам нужен такой быстрый доступ, я не думаю, что база данных - это хорошая альтернатива.В вызове базы данных всегда будет задержка, даже если он находится на одной машине.Возможно, иногда это может работать, но в некоторых случаях будет более высокая задержка, которую вы не сможете контролировать

Я думаю, что вы должны хранить данные в памяти, чтобы иметь достаточно быстрый доступ.

Почему выхотите отойти от XML?У вас проблемы с производительностью или другие проблемы с сохранением и загрузкой данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...