Учитывая приблизительное количество указанных объектов (около 5000), SQLite, вероятно, не является проблемой скорости. Это посреднические меры; например, JSON или, возможно, неоптимальное использование SQLAlChemy.
Попробуйте это (довольно быстро даже для миллионов объектов):
Модуль y_serial.py :: хранилище объектов Python с SQLite
"Сериализация + постоянство :: в несколько строк кода сжимают и аннотируют объекты Python в SQLite, а затем извлекают их в хронологическом порядке по ключевым словам без какого-либо SQL. Наиболее полезный" стандартный "модуль для базы данных для хранения данных без схемы . "
http://yserial.sourceforge.net
Поиск yserial по вашим ключам выполняется с помощью кода регулярного выражения ("regex") на стороне SQLite, а не на Python, так что есть еще одно существенное улучшение скорости.
Дайте нам знать, как это работает.