【问题标题】:SQL: Multiple table.column single indexSQL:多表.列单索引
【发布时间】:2011-06-08 21:25:35
【问题描述】:

是否有一个 SQL 数据库允许在多个 table.column 上具有单个索引,以便我可以同时查询多个 table.column 并让索引返回 table.column 和表的主键?

或者我是否总是必须使用像 Lucene 这样的外部索引?

澄清:我想要的索引是跨多个表

【问题讨论】:

  • 我不明白你的问题,但是你可以在多个列上建立索引。
  • 我澄清了这个问题。我需要跨多个表的索引

标签: sql indexing


【解决方案1】:

您可以为大多数 RDBMS 中连接表的视图创建索引。

这允许您在多个表的多个列上拥有一个索引

在 SQL Server 中,这是一个索引视图。或 Oracle 中的物化视图。

【讨论】:

  • 需要复制数据以保留索引似乎有点过头了。但它似乎是在 SQL 数据库中保持这种索引透明更新的唯一解决方案。
  • 请注意,这些索引虽然受到限制 - 请参阅 this answer 以获得非常详尽的解释。
【解决方案2】:

您不能将单个索引应用于多个表中的列。使用 Lucene,可以使用您提到的外部索引。

检查以下链接以获取 Lucene:

Using Lucene – External Indexes

【讨论】:

    【解决方案3】:

    是否有一个 SQL 数据库允许在多个 table.column 上具有单个索引,以便我可以同时查询多个 table.column 并让索引返回 table.column 和表的主键?

    不确定我是否明白您的问题,但您似乎想知道bitmap index scans 的潜力。

    如果是这样,是的。 PostgreSQL allows to do that。据我所知,MySQL 不会,SQLite 也不会。不确定 Oracle 和 SQL-Server(尽管我希望两者都是)。

    【讨论】:

    • 我澄清了这个问题。我需要跨多个表的索引
    猜你喜欢
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 2018-11-05
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多