Еще легче, чем SQLite

Я искал реализацию библиотеки SQL C++, которая проста сцепиться в подобном SQLite, но быстрее и меньший. Мои проекты находятся в игровой разработке и существует определенно предел между необходимостью пройти Тест на кислотность и желание некоторой экстремальной производительности. Я готов переехать от строковых запросов стиля SQL, позволяя этому быть управляемым кодом, но я не нашел ничего там, которое обеспечивает подобную SQL гибкость, также предпочитая производительность по Испытанию на кислотность.

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

Я нуждаюсь в основных командах (ВЫБОР, ИЗМЕНЯЮ, УДАЛЯЮ, ВСТАВЛЯЮ с СОЕДИНЕНИЕМ, и ГДЕ), не для операций данных (как сортировка, минута, макс., количество) и не нужна база данных, чтобы быть атомарными, или даже осуществить непротиворечивость (я могу использовать реальный сервис SQL, в то время как я тестирую и отлаживаю).

9
задан tshepang 30 July 2014 в 23:16
поделиться

5 ответов

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

В частности:

  • Отключить синхронизацию
  • Групповая запись в транзакции
  • Индексные таблицы
  • Использовать базу данных в памяти

Если вы не исследовали все это, то вы, вероятно, выполняете много раз медленнее, чем вы могли бы.

14
ответ дан 4 December 2019 в 08:14
поделиться

Я не уверен, что вам удастся найти что-то более производительное, чем SQL. Особенно, если вам нужны такие операции, как JOINs ... Действительно ли проблема со скоростью SQLite? Для простых запросов это обычно быстрее, чем любой полный SGDB. У вас нет проблем с индексом?

Что касается размера, это не событие 1Meg extra в двоичном файле, поэтому я немного удивлен, что это проблема.

Вы можете взглянуть на Berkeley DB, которая, вероятно, должна быть самой быстрой доступной БД, но в основном это только база данных «ключ-> значение».

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

10
ответ дан 4 December 2019 в 08:14
поделиться

Посмотрите на gigabase и ее близнеца fastdb.

1
ответ дан 4 December 2019 в 08:14
поделиться

Если вам нужны только эти базовые операции, SQL вам не нужен. Посмотрите на NoSQL-хранилища данных, например, Tokyo Cabinet.

0
ответ дан 4 December 2019 в 08:14
поделиться

Вы можете рассмотреть Встроенный innoDB . Он предлагает базовые функции SQL (очевидно, см. MySQL), но не предлагает фактический синтаксис SQL (поскольку это часть MySQL, а не innoDB). При 838 КБ он не такой уж и тяжелый.

1
ответ дан 4 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: