Я пытаюсь использовать sqlite в своем приложении в качестве своего рода кеша. Я говорю вроде как, потому что элементы никогда не истекают из моего кэша, и я ничего не храню. Мне просто нужно использовать кеш для хранения всех идентификаторов, которые я обработал раньше. Я не хочу ничего обрабатывать дважды.
Я ввожу элементы в кеш со скоростью 10000 сообщений в секунду, что в общей сложности составляет 150 миллионов сообщений. Мой стол довольно прост. В нем только один текстовый столбец, в котором хранятся идентификаторы. Я делал все это в памяти, используя словарь, однако я обрабатываю миллионы сообщений и, хотя это происходит быстро, через некоторое время мне не хватило памяти.
Я исследовал sqlite и производительность, и я понимаю, что конфигурация является ключевой, однако я все еще получаю ужасную производительность на вставках (я еще не пробовал выбирать). Я не могу идти в ногу даже с 5000 вставок / сек. Может быть, это так хорошо, как это получается.
Моя строка подключения выглядит следующим образом:
Data Source=filename;Version=3;Count Changes=off;Journal Mode=off;
Pooling=true;Cache Size=10000;Page Size=4096;Synchronous=off
Спасибо за любую помощь, вы можете предоставить!