Выбор встроенной базы данных?

Мы строим приложение на встроенной платформе, для которой требуется достаточно высокая производительность базы данных (очень низкая скорость выбора для таблиц с> 500 000 записей).

База данных должна быть в состоянии:

  • Храните атомарную информацию о фиксации в NVRAM, чтобы такая информация сохранялась в случае сбоя питания до завершения фиксации.
  • Быть записанным в NAND Flash таким образом, чтобы выровнять износ по памяти (это можно сделать, используя, например, jffs2 или yaffs2).

    В настоящее время наши параметры выглядят как подход «по-своему» или, возможно, SQLite.

    Будем благодарны за любые другие варианты или советы по поводу детализации "собственного" или работы с SQLite!

    Изменить: цель имеет 32 МБ ОЗУ, 1 МБ NVRAM и 64 МБ NAND Flash. Остальная часть кода - C, так что это предпочтительный язык. Целевым процессором является ARM. В общем, запросы, которые должны иметь наибольшую производительность, довольно просты. Сложные запросы не должны иметь одинаковый уровень производительности.

  • 13.12.2008 02:50:38
    Любая информация на платформе? Сколько оперативки? Что за процессор? Какой код он сможет запустить? Ява? C? .СЕТЬ? Есть несколько возможных вариантов, которые будут сильно различаться в зависимости от того, какие ресурсы доступны.
    lpfavreau 13.12.2008 03:57:09
    Кроме того, вам нужно будет выполнять сложные запросы (порядок, группа, объединения, комбинированные условия и тому подобное), или вы больше смотрите на 1) добавление строки 2) извлечение строки на основе шаблона ключа?
    lpfavreau 13.12.2008 04:05:29
    Знаете ли вы, что любая разумная СУБД сохраняет информацию в журнале транзакций для восстановления после сбоя питания?
    HTTP 410 14.12.2008 12:16:10
    4 ОТВЕТА
    РЕШЕНИЕ

    IPhone от Apple (и iPod Touch) использует базу данных SQLite для выполнения многих своих функций, поэтому здесь определенно есть проверенная платформа на базе флэш-памяти. Тем не менее, я сомневаюсь, что объем данных в любой из этих таблиц> 500 000 строк.

    2
    13.12.2008 03:41:04
    Марк, я принимаю этот ответ, потому что он дал мне самую новую информацию! Спасибо!
    Peter K. 31.12.2008 16:03:19

    Codebase обеспечивает надежный переносимый легкий быстрый исам с транзакциями.

    1
    13.12.2008 02:53:07
    Хм. Я скачал пример Codebase, и он довольно медленный по сравнению с SQLite.
    Peter K. 14.12.2008 16:53:04

    Если ваша встроенная система имеет доступ к .NET Framework, вы можете встроить VistaDB .

    1
    13.12.2008 03:21:21

    Я думаю, что это сравнение СУБД Википедии может помочь вам сделать свой выбор.

    Но я не понимаю, почему у вас есть конкретные требования NVRAM.

    2
    13.12.2008 21:18:24
    Нам нужна система для сохранения всей информации, даже во время сбоя питания. NVRAM должен хранить информацию о любых транзакциях, которые выполнялись при сбое питания.
    Peter K. 14.12.2008 03:05:26
    Вот что делает журнал транзакций. Он записывается до начала транзакции и может использоваться для отката или повторного применения после сбоя питания.
    HTTP 410 14.12.2008 12:17:19
    @RoadWarrior: ОК, я слышал, это называется разные вещи. Спасибо за разъяснение. Наша цель - иметь журнал транзакций в NVRAM.
    Peter K. 15.12.2008 14:37:55