关系数据库中的多维索引结构是什么?

Lin*_*say 5 relational-database multidimensional-array

我目前正在学习数据库课程。之前在看一些关系型数据库的视频,在做研究的时候,碰巧遇到了这个多维索引的话题。出于好奇,我试着读了一点,但我并不完全理解它在说什么,因为它似乎是一个非常高级的话题。所以我想知道我是否可以朝着正确的方向推动一点,并回答以下问题。如果可能的话,我会喜欢一些例子(因为我找到的大部分信息都是研究论文)。这不是我的课程的一部分,但我有点好奇,我想了解更多,看看它是否对我有用。

  1. 什么是多维索引?
  2. 它与关系数据库有什么关系?
  3. 何时以及如何使用?
  4. 有没有例子?

非常感谢您的帮助!

tem*_*git 5

这可能过于简单化,但我正在努力使其易于理解。

索引是列数据的顺序列表。索引可用于任何列。索引通常放在表的主键上。索引提高了查询的性能。同样,当一个主键中的列不止一列时,我们就有了一个多维索引。

多维索引的实现一般有两种方式:

  1. 连接多个索引。这里提供一个很好的解释。

文章解释了一个场景。当两家公司合并为一家时,employeeId任何一家公司的 都不再是唯一的。我们添加一个鉴别器列subsidiaryId来区分。查询仍然必须很快,因此我们将两列都放入索引中。

  1. 组合多个索引

如果字段 F1 和 F2 分别是字符串和整数,并且#是不能出现在字符串中的字符,那么值 F1 = 'abcd' 和 F2 = 123 的组合可以用字符串 'abcd#123' 表示

您可以猜到,两者都有自己的优点和缺点。

示例包括地理信息系统、范围查询(您对获得答案的可能范围感到满意)、最近邻查询。多维索引在数据立方体OLAP等中被大量使用。