• 建议使用SSD
  • 更小的key
  • 批量读写
  • 使用迭代器
  • 分片
  • 手动压实数据
  • 调整分段锁大小
  • 减少线程等待和切换开销
  • 读写分离

    建议使用SSD

    使用SSD可以极大的提升KitDB的吞吐量,尤其是在单个value较大的情况下。

    更小的key

    尽量使用长度较小的key

    批量读写

    尽量使用批量读写,可大幅提高性能

    使用迭代器

    使用迭代器遍历数据

    分片

    单个KitDB容量超过某个阈值后,性能会大幅衰减(见基准性能)。可以在一个应用中启动多个KitDB,对数据分片。

    手动压实数据

    大规模的删除操作后,可以尝试手动压实数据
    1. db.compaction();

    调整分段锁大小

    KV操作时,某些Key可能会产生Hash冲突降低性能,调整分段锁的大小,可以避开冲突

    减少线程等待和切换开销

    由于有Key锁的存在,多线程同时操作某个Collection类时,可能产生线程等待和线程切换开销,建议使用独立写线程+回调。web应用可配合webflux使用

    读写分离

    可在一个目录上同时打开一个写实例和一个只读实例,分离读写