Как сравниваются SQLite и DISQLite для большой простой базы данных?

StackOverflow https://stackoverflow.com/questions/2040266

Вопрос

Каковы различия между SQLite и DISQLite и почему я хочу предпочесть одно другому?

Мой контекст таков, что я имею дело с большой базой данных (может достигать 10 ГБ), критическая часть которой находится в одной очень простой таблице с одним индексированным полем и одним текстовым полем размером до нескольких КБ.Мой инструмент разработки — Delphi 2009, и база данных будет встроена в мой .exe.

Мой главный критерий – скорость.Это будет программное приложение, работающее на обычном компьютере под управлением Windows, скажем, с Windows 7 и 4 ГБ ОЗУ.

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

Это было полезно?

Решение

AFAIR, DISQLite использует obj-файлы Sqlite, компилирует их с помощью Delphi и создает больше функций, чем исходный, и использует тот же формат базы данных sqlite, поэтому вы можете читать с его помощью файл базы данных DISQLite на других языках, поддерживающих Sqlite. водители.

Также еще одна особенность DISQLite: вам не нужно распространять Sqlite DLL.

DISQLite поддерживает размер базы данных до 2 ТБ, поэтому он без проблем справится с вашими потребностями.

Еще один вариант, который я бы рассмотрел, — это встроенная версия FireBird, и если вы хотите масштабировать ее больше, вы можете без особых усилий перейти на полноценный сервер FireBird.

Но я думаю, что и Sqlite, и DISQLite будут работать лучше, чем Firebird.

я использую Компоненты Audcom Sqlite для доступа к базам данных Sqlite, и вы можете скомпилировать его с файлом Sqlite objs, чтобы вам не приходилось развертывать sqlite dll.

Другие советы

Я могу предложить вам написать свою собственную реализацию.Если вам не нужны сложные SQL-запросы, самой простой (и, вероятно, самой быстрой) реализацией является файловое хранилище.

DISQLLite имеет две версии, бесплатная версия ограничена личным и некоммерческим использованием.Так что это может быть одним из решающих факторов, поскольку SQLite — это бесплатная реализация с открытым исходным кодом без бесплатных/платных версий.

Обе базы данных смогут обрабатывать данные в ГБ.SQLite доступен в предварительно скомпилированном двоичном виде, т.е.DLL, которую можно распространять вместе с вашим приложением.Однако, имея доступный исходный код, вы также можете скомпилировать его в своем приложении и использовать без необходимости использования DLL.

Преимущество использования модуля DLL (иногда) заключается в том, что когда некоторые ошибки будут устранены, вам просто потребуется заменить DLL на клиентском компьютере вместо перекомпиляции всего приложения.

Я считаю, что SQLite будет лучшим вариантом для ваших требований.Скорость базы данных не полностью зависит от типа базы данных.Аппаратное обеспечение, такое как скорость доступа к жесткому диску, доступная вычислительная мощность, оперативная память и т. д., также играют важную роль в ускорении работы базы данных.

Обратите внимание, что личная версия DISQLLite имеет некоторые ограничения, и я не думаю, что цена профессиональной версии (149,99 евро без исходного кода) того стоит, когда каждый может просто бесплатно реализовать оболочку SQLite.

Я использовал DISQLite Personal для бесплатного продукта, и мне пришлось внести изменения в базу данных в новой версии.Персональная версия не поддерживает ALTER, поэтому мне пришлось приобрести полную версию.Поэтому я отказался от DISQLite и просто выбрал хорошую оболочку SQLite.Выбирайте DISQLite только в том случае, если вы готовы заплатить за полную версию.

SQLite4Delphi может быть лучшим вариантом или, по крайней мере, указать вам на более экономичное решение.

Взгляните на наш Модуль SynBigTable.Это будет намного быстрее, чем SQLite, и, кажется, соответствует именно вашей цели.

А если вам нужна собственная реализация SQLite, взгляните на нашу Платформа SQLite3:это бесплатно и с открытым исходным кодом, без каких-либо внешних dll.И имеет несколько больше возможностей, чем закрытый DiSQLite (например, собственные классы Delphi для реализации функций SQL или виртуальных таблиц).

С точки зрения производительности узким местом будет не используемая вами оболочка, а доступ к диску и способ настройки базы данных.Не забудьте использовать индексы чтобы получить ваши данные как можно быстрее.Тогда даже 10 ГБ данных не будут проблемой для SQLite, какую бы оболочку вы ни использовали.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top