Сложный вопрос - но я поделюсь своим опытом и позволю вам решить, поможет ли это.
Если вам нужно сохранить результат обработки исходного файла, и вы используете его для создания нескольких просмотрит полученных данных, а затем может рассмотреть возможность использования встроенной базы данных.Причины использования встроенной базы данных (IMHO):
- Чтобы воспользоваться возможностями СУБД (ACID, отношения, внешние ключи, ограничения, триггеры, агрегация ...)
- Toупростить экспорт данных гибким способом
- для предоставления доступа к вашим обработанным данным внешним клиентам (известный формат)
- для обеспечения более гибкого преобразования данных при подготовке к просмотру
Факторы, которые следует учитывать при принятии решения:
- Какая целевая платформа (ы) (windows, linux, android, iPhone, PDA)?
- Какая технологическая база?(Java, .Net, C, C ++, ...)
- Какие ограничения ресурсов ожидаются или должны быть разработаны?(ОЗУ, ЦП, место на жестком диске)
- Какие режимы работы необходимо учитывать (подключен к сети, отключен)?
На типичном современном настольном компьютере достаточно запасныхспособность обрабатывать большинство операций.На eeePC, КПК и других портативных устройствах, возможно, нет.На встроенных устройствах, скорее всего, нет.Язык, который вы используете, может иметь встроенные функции, помогающие управлять памятью - возможно, вы сможете воспользоваться ими.Аспект подключения (с сохранением состояния / без состояния / и т. Д.) Может повлиять на то, сколько вам действительно нужно хранить в памяти в любой заданной точке.
Если вы имеете дело с действительно большими файлами, то выМожно рассмотреть подход потокового процесса, так что вы можете хранить в памяти только небольшую часть общих данных за раз, но это не означает, что вы должны (или не должны) использовать встроенную базу данных.Прямые текстовые или двоичные файлы могут работать точно так же (на основе записей, на основе столбцов, на основе строк ... что угодно).
Некоторые базы данных позволят вам более эффективно взаимодействовать с данными после их сохранения - этозависит от двигателя.Я считаю, что если в ваших базовых файлах требуется много агрегации (я имею в виду файлы, которые вы изначально генерируете из исходного источника), тогда механизм СУБД может быть очень полезен для упрощения вашей логики.Другие варианты включают создание базового преобразования и добавление дополнительных шагов для его обработки в другие временные хранилища для каждого конкретного представления, которые затем, в свою очередь, обрабатываются для рендеринга в целевой формат (отчет?).
Просто потокОтвет сознания - надеюсь, это немного поможет.
Редактировать:
По вашему дальнейшему разъяснению, я не уверен, что встроенная база данных - это то направление, которое вы хотите выбрать.Вам либо нужно сделать какие-то упрощающие предположения для рендеринга ваших графиков, либо исследовать такие методы, как сегментация (визуализировать разделы графика и затем кэшировать выходные данные перед рендерингом следующего раздела).