Мне нужно хранить короткие строки (более 50 символов) и быстро их искать. Сначала я хотел использовать SQLite для этого. Я создал одну таблицу с одним индексированным столбцом TEXT. Используя все виды низкоуровневых трюков, я мог бы заполнить базу данных 1 миллионом строк за 10 секунд.
Проблема заключалась в том, что если компьютер был перезагружен, добавление дополнительных 10.000 строк заняло 30 секунд, что ни в коем случае не соответствует 1M строк за 10 секунд. Причина этого заключается в том, что SQLite должен прочитать очень большую часть существующего индекса с диска, прежде чем он сможет добавить новые строки. Другая проблема заключается в том, что размер базы данных удваивается, поскольку все строки хранятся дважды (один раз в обычной таблице, один раз в таблице индексов) из-за механизма b-дерева.
Есть ли простая альтернатива? Который использует поиск на основе хеша, например? Я знаю о различных решениях NoSQL, но они ориентированы на децентрализованное и распределенное хранилище, а мне просто нужна простая встроенная база данных «плоских файлов»?