Если вы не хотите изобретать велосипед, вы можете найти все необходимые инструменты с открытым исходным кодом для вашей задачи с нашей стороны:
- Synopse Big Table для хранения огромного количества данных - см., В частности, класс
TSynBigTableRecord
для хранения неограниченного количества записей с полями, включая индексы, если это необходимо - он будет определенно быстрее и будет использовать меньше размер диска, чем у любой другой обычной базы данных SQL
- Synopse SQLite3 Framework , если вы предпочитаете использовать стандартный механизм SQLite для хранилища - он поставляется с полной клиент-серверной ORM
- Отчет из кода, включая pdf файл генерация
С полным исходным кодом, работающим от Delphi 6 до XE.
Я только что обновил документацию фреймворка. Более 600 страниц, с подробной информацией о каждом методе класса и новым расширенным общим введением. См. Документ SAD.
Обновление: Если вы планируете использовать SQLite, вы должны сначала угадать, как будут храниться данные, какие индексы должны быть созданы и как запрос SQL может ускорить ваши запросы. Плохо читать все содержимое файла для каждого запроса: вам следует лучше структурировать данные, чтобы один SQL-запрос мог возвращать израсходованные результаты. Иногда полезно использовать дополнительные значения (например, временные суммы или средства) для данных. Также рассмотрите возможность использования виртуальной таблицы RTree SQLite3 , которая предназначена для ускорения доступа к double
мин / макс многомерным данным: это может ускорить много ваших запросов.