问题标签 [b-tree-index]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
339 浏览

sql - 数据库索引:为什么要配对

我有一个包含多个索引的表,其中几个重复相同的列:

我对实践中的索引不是很了解,所以我想知道是否有人可以解释为什么 X、Y 和 Z 与这些相同的列配对。B 是生效日期。C 是此表在特定生效日期 B 的半唯一键 ID。D 是标识此记录对标识符 C 的优先级的序列。

为什么不只创建 6 个索引,每个 X、Y、Z、B、C、D 一个?

我想将索引添加到另一列 T,但在某些情况下,我只会单独查询 T,而在其他情况下,我还将指定 B、C 和 D 列......所以我应该只创建一个索引,如或者我应该为 T 创建一个,为(T、B、C、D)创建一个?

在谷歌搜索全面覆盖索引时,我没有预期的那么幸运。有什么资源可以让我通过解释和大量 B-tree 索引示例获得?

0 投票
3 回答
2763 浏览

sql - 数据库和 B+Trees 索引

我在哪里可以找到有关哪些数据库是否使用 B+Trees 而不是 B-Trees 进行索引实现的信息?

Oracle 似乎正在使用 B+Trees。虽然他们没有在他们的文档中描述它,但他们的图形似乎表明 B+Trees 正在实际使用中。

0 投票
2 回答
913 浏览

algorithm - 为什么在 B-tree 和 B+_tree 中在每个非叶节点中从半满存储到全满

我刚刚在 DBMS 中学习了 B-tree 和 B+-tree。我不明白为什么树中的非叶节点具有 [n/2] 和 n 个子节点,当 n 对特定树是固定的时。

这是为什么?和优势?

谢谢 !

0 投票
3 回答
3841 浏览

sql-server - 在 SQL Server 中查找表的 B 树的高度

由于数据库数据在 B-tree 中以 8k 页的形式组织,对于 PK 信息信息也是如此,因此数据库中的每个表都应该可以计算 B-Tree 的高度。从而揭示到达某些数据需要多少跳跃。

由于行大小和 PK 大小都非常重要,因此很难计算,因为例如 varchar(250)不需要占用 250 个字节。

1) 有没有办法从 SQL Server 中获取信息?2)如果没有,是否可以使用一些分析数据库表的代码来粗略估计?

0 投票
2 回答
660 浏览

mysql - MySQL 如何为 IN() AND IN() 搜索遍历复合 B-tree 索引

我一直在研究索引,但不能完全理解 MYSQL 是如何将索引完全用于诸如此类的语句的

我正在阅读的这本书建议,当我们有一个索引 ( a, b, ...) 但用户想要搜索b并且我们在 中的基数较低时a,我们可以使用一个技巧并简单地添加 IN()

假设我们有以下数据

它如何遍历这棵树来满足上面的查询?它会简单地为 IN-s 创建所有可能的组合,并且几乎会为每个查询遍历树吗?

因此使这个技巧的用处有限,因为随着 IN 数量的增加,所有可能的 IN 组合的数量急剧增加,我们必须为这些组合中的每一个运行 B 树?如果上述情况属实,这是否意味着存在某种理论上的观点,即用 IN 欺骗索引会比完全不使用索引要慢?

0 投票
0 回答
607 浏览

mysql - MySQL btree 索引仍然会导致全表查找?

我们有一个 MySQL DB (v 5.5),它为一个大型网站提供动力。该网站的一部分包含一个拥有超过 2,000,000 个帖子的论坛。

该站点最近的流量大幅增加(约 700 -> 1,000 个同时连接),这导致站点上的一些查询非常缓慢。分析慢查询日志后,我们看到很多这样的查询:

我不是 MySQL 专家,但是 Rows_examined 部分让我很头疼。我们正在查找一个有大约 2,000,000 行的表,但是我们通过“fp_id”进行查询,它应用了一个 btree 索引。尽管存在此索引,但 Rows_examined 计数从 ~300,000 波动到全表扫描。我还应该提到我们在 fp_topicsid 上也有一个索引。

有谁知道我们为什么会看到这个?真的很感激这方面的一些帮助:)

谢谢!

0 投票
1 回答
439 浏览

search - 从增加索引生成二叉搜索树

我有一个父指针向量 [ 0 1 1 2 2 3 3 5 5 ....],它基本上是一棵二叉树。索引是子节点,对应的值代表其父节点在同一向量中的索引。

例如:在上面的向量中,如果数到索引 5,则元素为 2,这意味着它的父元素位于索引 2。再次在索引 2 处,元素为 1,这意味着父元素位于索引 1。在索引 1是元素是 0 是根节点。

如何从中创建二叉搜索树?

或者,

我正在以二叉树格式生成数据,其中我知道父级和相应的子级,如何将它们存储在二叉搜索树中?

子项的索引将始终大于父项,如上面的向量所示。一个例子是:我取节点 1,把它分成两个节点,2 和 3。然后取节点 2,把它分成 4 和 5。然后我取节点 4,把它分成 6 和 7,以此类推。我想在二叉搜索树中保留父子关系。

此致

瓦贾哈特

0 投票
1 回答
6799 浏览

mysql - 我应该在二进制数据类型列 mysql 上使用哪个索引

我正在编写一个简单的工具来检查重复文件(即具有相同数据的文件)。该机制是使用 sha-512 算法为每个文件生成哈希,然后将这些哈希存储在 MYSQL 数据库中。我将哈希存储在 binary(64) 唯一的非空列中。每行都有一个唯一的二进制哈希,用于检查文件是否重复。

-- 我的问题是 --

  1. 我可以在二进制列上使用索引吗,我的默认表排序规则是 latin1 - 默认排序规则?

  2. 为了获得高性能,我应该使用 Btree 或 Hash 哪种索引机制?我需要每秒更新或添加 100 行。

  3. 为了获得最佳性能,我还应该注意哪些其他事项?

0 投票
2 回答
580 浏览

mongodb - 为什么 MongoDB 不能使用与查询非常相似(不精确)的复合索引?

考虑下面的 Mongo 索引策略和查询,

指数:

询问:

上述查询的解释返回:

这里的问题是它清楚地表明查询完全在 Index(as "indexOnly" : true) 上运行。但是为什么"scanAndOrder" : true
根据Btree索引模型,c在索引的尾部,所以可以用来排序。不?

为什么它不被使用?

0 投票
0 回答
38 浏览

sql - 加入索引的成本

鉴于以下情况:

如果在采取的 S# 上有一个 B-Tree 索引,并且使用该索引完成“students JOIN”,那么执行 JOIN 的成本是多少?

假设每个 B-Tree 节点最多包含 4K 数据(= 块大小)。