Нужно сохранить много записей для моего приложения, должен ли я вместо этого использовать локальную базу данных?

Я собираюсь начать разработку "машины времени" для окон. Мне нужно хранить много записей в таблице. Каждый раз, когда я выполняю резервное копирование, я буду записывать около 50 000 записей, потому что именно столько файлов у меня на компьютере (каждая запись не имеет ничего общего с хранением файла. Запись будет содержать путь, по которому находится каждый файл). не знаю, могу ли я использовать XML для хранения своих записей, поскольку мои запросы не будут сложными, плюс их легче развернуть по сравнению с созданием локальной базы данных, где я не знаю, будет ли она более эффективной, потому что даже если запросы будут простыми, я буду иметь дело с большим количеством данных. Кроме того, я не знаю, может ли локальная база данных быть больше 2 ГБ, и я оцениваю, что база данных будет около 3 ГБ при регулярном использовании в течение года.

Я предпочитаю использовать XML и использовать Xpath для выполнения запросов, что упрощает развертывание моего приложения. Но если создание локальной базы данных окажется более эффективным, а XML замедлит работу моего приложения из-за большого количества записей, я вместо этого создам локальную базу данных. Любые другие рекомендации будут полезны, возможно, мне нужно сделать что-то еще.


person Tono Nam    schedule 28.05.2011    source источник


Ответы (3)


Взгляните на SQLite.

Это встроенная, но мощная база данных. Вам не нужно устанавливать экземпляр SQL Server.
Вы можете думать об этой базе данных как о файле с определенным API. API позволяет выполнять SQL-запросы к этому файлу.

person Alex Aza    schedule 28.05.2011
comment
+1 Я не использовал SQLite, но все, что имеет небольшой размер, приличный API и хорошую производительность, - отличная идея. - person Will A; 28.05.2011
comment
Я думаю, что указатель на привязку C# был бы полезен (и, поскольку я ничего не знаю о C#, я могу только предположить, что это правильно: system.data.sqlite.org/index.html/doc/trunk/www/index.wiki - person msw; 28.05.2011

SQL Server 2008 R2 Express позволяет использовать базы данных размером до 10 ГБ, так что, возможно, это стоит того. учитывая ваши предполагаемые потребности в пространстве.

Гораздо лучше хранить ваши данные в какой-либо форме базы данных, а не в XML, так как последний быстро вырастет до такого размера, что запросы станут очень медленными и будут интенсивно использовать память.

person Will A    schedule 28.05.2011
comment
Для расширения: XML может быть полезен для обмена данными или удобства чтения человеком. Большой двоичный объект XML — это не база данных, это просто двоичный объект XML, и это один из наименее удобных способов хранения данных для машинного доступа и запросов. - person msw; 28.05.2011

Использование XML для хранения больших объемов данных потребует большого использования памяти при попытке доступа к данным. Это также не очень эффективно, когда речь идет об использовании пространства для хранения. Я бы порекомендовал использовать версию SQL. Вы можете использовать одну из версий Microsoft SQL Express или вариант SQL с открытым исходным кодом, такой как MySQL.

Когда вы хотите хранить много информации, вам нужно обратиться к реляционной базе данных. Если вы ДЕЙСТВИТЕЛЬНО не хотите идти по этому пути, вы можете рассмотреть возможность хранения каждой резервной копии в отдельном XML-файле. Это обеспечит большую переносимость и уменьшит объем используемой памяти при доступе к архивным данным.

person IAmTimCorey    schedule 28.05.2011