Как SQLite и DISQLite сравниваются для большой простой базы данных? - PullRequest
4 голосов
/ 11 января 2010

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

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

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

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

Ответы [ 5 ]

4 голосов
/ 11 января 2010

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

Также еще одна функция с DISQLite - вам не нужно распространять Sqlite DLL.

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

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

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

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

2 голосов
/ 11 января 2010

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

1 голос
/ 15 июля 2011

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

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

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

1 голос
/ 12 января 2010

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

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

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

1 голос
/ 11 января 2010

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

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

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

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

...