我们知道在传统的 RDBMS 系统中有主键的概念。此主键基本上用于在此特定键上为表中的记录建立索引,以便更快地检索。我知道有像 Cassandra 这样的 NOSQL 存储提供辅助键索引,但是有一种方法或现有的 DB 遵循与传统 RDBMS 系统完全相同的模式(即,将 DB 拆分为各种表以保存不同类型的数据)但是提供 2 个或更多键的索引。
一个用例的例子是:
10 个不同的人的姓名和年龄之间存在一对一的映射关系。现在,如果我将这些信息保存在一个以人名作为主键的表中,那么检索给定人名的年龄比检索给定人年龄的姓名要快。如果我可以索引这两列,那么第二种情况也会更快。使用传统 RDBMS 执行此操作的另一种方法是让 2 个表具有相同的数据,不同之处在于其中一个中的主键是名称,而另一个中的主键是年龄,但这会浪费在大量记录的情况下占用大量空间。