当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
34 Star 112 Fork 32

John / gkvdb
暂停

 / 详情

如何迭代数据?

已完成
创建于  
2018-11-06 10:43

如何迭代数据?

比如FIRST()
NEXT()

评论 (4)

初七 创建了任务
John 任务状态待办的 修改为进行中
展开全部操作日志

使用db.Items()方法可以获得指定表所有的数据,随后使用for...range...语法进行遍历。由于gkvdb的数据是无序存储的,因此你每一次遍历获得的数据都是无序的。

谢谢
为什么设计成无序
如果自己想要顺序
还要自己实现?

你好,不好意思刚看到,gitee的评论貌似没提醒。

大多数的K/V场景对于Key来说都没必要保证有序性,并且无序的底层数据结构设计更简单且性能更好,如哈希表 -- 绝大多数的程序设计语言中的 关联数组/map 等数据类型底层都是依靠哈希表实现。有序的场景可以考虑二叉树,在磁盘化设计中常用如B树或者B+树,这种数据结构在写入/更新的性能都比不上无序的数据结构,除了更节省磁盘容量以外。

根据gkvdb的介绍你知道底层设计是使用了哈希表,优缺点是很明显的。

至于如何实现有序的K/V存储这个要根据你的业务场景来制定,并且有的K/V数据库是支持有序的,你可以综合评估一下。

John 任务状态进行中 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1309327 johng 1705475649
Go
1
https://gitee.com/johng/gkvdb.git
git@gitee.com:johng/gkvdb.git
johng
gkvdb
gkvdb

搜索帮助

53164aa7 5694891 3bd8fe86 5694891