所以,我最终还是使用了一个关系数据库(因为只有那里我可以使用复合键而没有任何黑客攻击)。 我执行了一个基准测试来比较sqlite与postgres和mysql - 500 000个~60 KB blob的插入,然后是整个键的50 000个选择。这还不足以将sqlite减慢到我遇到的不可接受的水平,但设置了一个参考点(即sqlite运行这几个记录的速度对我来说是可以接受的)。我假设在使用mysql和postgres添加更多记录时我不会遇到巨大的性能损失(因为它们被设计为使用比sqlite更大量的数据),并且当最终使用其中一个时,结果证明是真正。
设置(默认值除外)如下:
BLOB
BYTEA
MEDIUMBLOB
正如您所看到的,我能够更多地自定义mysql以适应手头的任务。以下结果很好地反映了这一点:
sqlite postgres mysql selects 90.816292 191.910514 106.363534 inserts 4367.483822 7227.473075 5081.281370
Mysql的速度与sqlite类似,postgres速度明显变慢。