2015-04-24 2 views
0

В текущем проекте моего проекта мне нужно управлять и хранить умеренное число (от 10-100 до 5000+) пользователей (ID, имя пользователя и некоторые другие данные) ,Наиболее эффективный способ хранения и управления умеренным числом пользователей

Это означает, что я должен быстро находить пользователей во время выполнения, и я должен иметь возможность сохранять и восстанавливать базу данных для продолжения статистики после перезапуска программы. Мне также нужно будет зарегистрировать каждое подключение/отключение/вход/выход пользователя из статистики. (И некоторые другие данные также, но вы получаете идею).

В прошлом я сохранял настройки и прочее в кодированных текстовых файлах или сериализовал необходимые объекты и записывал их. Но эти методы требуют, чтобы я переписывал всю базу данных при каждом изменении, и это все больше замедляет ее (особенно с ростом числа пользователей/записей), не так ли?

Вопрос теперь: Каков наилучший способ сделать это в C#?

К сожалению, у меня нет опыта работы с SQL или другими языками запросов (кроме бит LINQ), но это не создает для меня никаких проблем, поскольку у меня есть время и мотивация для изучения одного (или более если потребуется) для выполнения этой задачи.

+2

Ваш вопрос очень широк и, скорее всего, будет закрыт как не по теме. Можете ли вы сузить его до определенной области? –

+0

Вы * вероятно * хотите попасть в базы данных. Начните с простых руководств, и вы скоро поймете, насколько это хорошо для ваших нужд. – SimpleVar

+0

10 отличается от 5000+, если многие из действий пользователя «заносятся в журнал», эта разница становится экспоненциальной с точки зрения объема данных и нагрузки. – Alex

ответ

1

Наибольшая эффективность и высокая субъективность на основе того, кого вы просите, даже если сузить этот вопрос до конкретных потребностей. Если вы храните нереляционные данные, Mongo или какой-либо другой тип базы данных NoSQL, такой как Raven DB, будут эффективными. Если ваши данные имеют реляционную форму, тогда будут эффективны СУБД, такие как MySQL, SQL Server или Oracle. Реляционные базы данных идеальны, если у вас будут большие требования к отчетности, так как это позволяет не-разработчикам упростить доступ при написании простых SQL-запросов против него. Но также имеет в виду производительность с сохранением дискового кэша, предоставляемым базами данных. Обычно доступные данные хранятся в памяти, чтобы сохранить круглые поездки на диск (с гибридными дисками я предполагаю, что доступ к некоторым файлам напрямую выполняет то же самое, однако SSD все еще не так быстро, как доступ к RAM). Поэтому вам действительно нужно задать себе несколько вопросов, чтобы определить наилучшее решение для вас; Какова форма ваших данных (плоская, реляционная и т. Д.), Есть ли у вас требования к отчетности, в которых меньше членов технической команды должны иметь возможность запрашивать репозиторий данных и каковы ваши показатели эффективности?

+0

Как описано в моем вопросе, у меня есть пользователи, некоторые свойства, статистика (логины/выходы и т. д.) и, возможно, некоторые другие данные, связанные с ними. Поэтому я думаю, что я собираюсь пойти с SQL Database, так как это выглядит наиболее привлекательным для меня (-> комментарий вопроса) – Chester

Смежные вопросы