为什么不能面向行的DB进行索引,就像继承的面向列的DB结构一样

时间:2014-06-21 18:51:58

标签: database indexing column-oriented

从这个维基页面: http://en.wikipedia.org/wiki/Column-oriented_DBMS

我的印象是,由于映射,面向列的数据库检索满足特定条件的记录比索引的面向行的数据库更快的原因。

即,列的索引存储如下: 1:机器人 2:人类 3:bot

另一方面,面向列的数据库存储如下列的列: 机器人:1,3 人类:2

因此,为什么面向行的数据库不能像面向列的数据库那样创建索引。

1 个答案:

答案 0 :(得分:1)

数据库软件可以以多种格式存储数据,而且通常可以存储数据。例如,对于SQL Server,您可以在同一个表上使用基于列和基于行的索引。因此,DBMS必须决定选择一种格式而不使用另一种格式,这是不正确的。

事实上,即使使用基于行的索引,也可以轻松定义这样的索引。只需在IsBot, ID上建立索引(假设示例中的两列以这种方式命名)。此索引可以轻松满足IsBot上的查询过滤。