Нужно сохранить много записей для моего приложения ... я должен использовать локальную базу данных instad? - PullRequest
2 голосов
/ 28 мая 2011

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

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

Ответы [ 3 ]

6 голосов
/ 28 мая 2011

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

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

2 голосов
/ 28 мая 2011

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

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

1 голос
/ 28 мая 2011

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

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

...