Я встроенный парень, а не парень базы данных. Меня попросили перепроектировать существующую систему, которая имеет узкие места в нескольких местах.
Встроенное устройство основано на процессоре ARM 9, работающем на частоте 220 МГц.
Должна быть база данных из 50 тыс. записей (может увеличиться до 250 тыс.) каждая с 1 тыс. данных (максимум 8 заявок). Это приблизительное - я могу попытаться получить более точные цифры, если это необходимо.
В настоящее время они используют SqlLite 2 и планируют перейти на SqlLite 3.
Без начала пламенной войны - я полный d/b новичок, просто ищущий совета - это "лучшее" решение? Я понимаю, что это может быть "как долго это кусок струны?" вопрос, но любые указатели будут очень приветствоваться. Я не возражаю делать много чтения и исследований, но просто надеялся, что вы можете заставить меня начать летать. Спасибо.
p.s Опять же, полная переписывание, возможно, даже не встанет со встроенной Linux, но переключитесь на eCos, не беспокойтесь слишком много о однократном преобразовании между форматами d/b. О, и доступ должен быть нечастым, не чаще одного раза в несколько секунд.
edit: ok, похоже, у них есть 30 тыс. записей (может достигать 100 тыс. или более) всего по 5 или 6 полей, но по крайней мере 3 из них могут быть ключом поиска для записи. Они ориентируются на "отсутствие d/b вообще, поскольку данные такие простые", но мне кажется, что с несколькими ключами мы не могли использовать причудливые вещи, такие как поиск типа quicksort() (рекурсивный, двоичный поиск). Любые мысли о "нет d/b", просто структуры данных?
Btw, один ключ - 800k - не уверен, насколько хорошо SqlLite справляется с этим (возможно, с "no d/b" мне нужно хэшировать этот 800k на что-то меньшее?)