SQL:多表.列单索引
Posted
技术标签:
【中文标题】SQL:多表.列单索引【英文标题】:SQL: Multiple table.column single index 【发布时间】:2011-06-08 21:25:35 【问题描述】:是否有一个 SQL 数据库允许在多个 table.column 上具有单个索引,以便我可以同时查询多个 table.column 并让索引返回 table.column 和表的主键?
或者我是否总是必须使用像 Lucene 这样的外部索引?
澄清:我想要的索引是跨多个表
【问题讨论】:
我不明白你的问题,但是你可以在多个列上建立索引。 我澄清了这个问题。我需要跨多个表的索引 【参考方案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(尽管我希望两者都是)。
【讨论】:
我澄清了这个问题。我需要跨多个表的索引以上是关于SQL:多表.列单索引的主要内容,如果未能解决你的问题,请参考以下文章