摘要:
B+树有什么缺点? 每次修改数据都很有可能破坏 B+ 树的约束,从而需要对整棵树进行递归的合并、分裂等调整操作,而不同节点在磁盘上的位置很可能并不是连续的,这就导致需要不断地做随机写入的操作,并且产生大量的磁盘碎片。 随机写入性能的低下在写多读少的场景下会更加明显,而且现在很多非关系型数据库就是为了 阅读全文
摘要:
谈一谈对B+树的理解? 为了让二叉查找树支持按照区间来查找数据,可以把索引放在树的节点上,数据放在叶子节点上。索引节点不存储数据,叶子节点串在一条链表上,链表中的数据从小到大有序。 --1、如何降低大量数据索引对内存的占用? 索引数量过多会占用大量内存, 1亿个节点(16bit) 需要大约1GB的内 阅读全文
摘要:
既然建立线性的索引文件可以加速查询,那为什么在许多情况下,还是需要使用诸如红黑树、B+ 树这样的复杂索引结构呢? Redis 跳表索引 Kafka 线性索引 Kafka的消息是以什么形式存储的? 如何利用二分查找找到消息? 参考: https://time.geekbang.org/column/a 阅读全文
摘要:
为什么需要索引? 数据库中的索引,就好比一本书的目录,可以快速进行特定值的定位与查找,从而加快数据查询的效率。 索引是帮助数据库管理系统高效获取数据的数据结构。 索引有哪些需求? 功能性需求: 格式化数据 or 非格式化数据 要构建索引的原始数据,可以分为两类,一类是结构化数据,比如MySQL 中的 阅读全文