LevelDB Options 简介
主要分为三个部分
ReadOptions用于控制单个读取操作的行为:
- 主要用于配置读取数据时的特定选项
- 可以控制是否验证数据校验和
- 允许设置快照来实现一致性读取 PS: 适用于Get()和Iterator操作
WriteOptions用于控制写入操作的特性:
- 配置单个写入操作的行为
- 可以控制是否同步写入磁盘
- 影响写入操作的持久性和性能 PS:适用于Put()和Delete()操作
Options是数据库级别的全局配置:
- 控制整个数据库实例的行为
- 包含压缩、缓存大小等基础设置
- 影响数据库的整体性能和资源使用 PS: 在数据库创建或打开时使用
详细介绍思维导图
思维导图原文链接: p7mt5g3zb7.feishu.cn/docx/UmbTdV…
配置建议
安全优先配置
适用场景:数据完整性和可靠性要求高的业务场景(如金融、交易等)
// 数据库全局配置
options.paranoid_checks = true; // 开启严格检查,增加数据安全性
options.block_cache = NewLRUCache(64 * 1024 * 1024); // 64MB缓存,避免内存过度使用
// 读取配置
readOptions.verify_checksums = true; // 开启校验和验证,确保数据完整性
// 写入配置
writeOptions.sync = true; // 同步写入,保证数据持久化
性能优先配置
适用场景:高吞吐、低延迟要求的业务场景(如日志系统、缓存系统等)
// 数据库全局配置
options.write_buffer_size = 64 * 1024 * 1024; // 64MB写缓冲,提升写入性能
options.max_open_files = 5000; // 增加打开文件数上限,减少文件打开开销
options.block_cache = NewLRUCache(256 * 1024 * 1024); // 256MB缓存,提升读取性能
options.block_size = 16 * 1024; // 16KB块大小,优化读取性能
options.max_file_size = 8 * 1024 * 1024; // 8MB文件大小,平衡文件数量和查找效率
// 批量扫描场景的读取配置
readOptions.fill_cache = false; // 批量扫描时不污染缓存
项目链接
github 链接: git@github.com:luogaiyu/leveldb.git
猜你喜欢
C++多线程: blog.csdn.net/luog_aiyu/a… 一文了解LevelDB数据库读取流程:blog.csdn.net/luog_aiyu/a… 一文了解LevelDB数据库写入流程:blog.csdn.net/luog_aiyu/a… [C++]从入门到精通-atomic详解: blog.csdn.net/luog_aiyu/a…
PS
你的赞是我很大的鼓励 欢迎大家加我飞书扩列, 希望能认识一些新朋友~ 二维码见: www.cnblogs.com/DarkChink/p…