1. Требуется key-value хранилище. И ключи, и значения строки (ключи до 100 символов, значения могут быть несколько тысяч символов). Несколько миллионов пар. Двухколоночная SQLite таблица весит 2.5 ГБ.
Хранилище заполняется данными один раз при создании, затем работает в режиме только чтения (важна персистентность между запусками приложения и возможность не держать в памяти всю БД).
SQLite тратит 250 секунд на заполнение таблицы данными и чуть меньше 1 миллисекунды на запрос одного элемента.
Есть ли более быстрые варианты хранилища (в первую очередь в плане скорости заполнения данными)? Язык программирования Rust, желательно что-то имеющее обвязки под него.
2. Данные беруться из XML документа простого формата типа:
<items>
<item>
<key>Ключ</key>
<value>Значение</value>
</item>
...
</items>
Так вот, парсинг этого документа занимает 700 секунд (это если закомментировать вставку в таблицу, иначе будет 950 секунд).
Для парсинга используется xml-rs в режиме потокового парсера.
Можете ли посоветовать более быструю библиотеку парсинга? Как я понимаю, xml-rs парсит всякие штуки типа неймспейсов, которые мне не нужны (а вот стандартные xml entity типа < и > мне нужны - они встречаются в ключах и значениях).