首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多列btree索引& INLJ

多列btree索引& INLJ
EN

Database Administration用户
提问于 2017-01-29 23:28:00
回答 1查看 194关注 0票数 0

我有三张桌子:

代码语言:javascript
复制
FILM(ID,TITLE)
ACTOR(ID,NAME,GENDER)
CAST(ACTOR_ID,FILM_ID,ROLE)

外键: ACTOR_ID,FILM_ID

我在CAST表的列(ACTOR_ID,FILM_ID)上创建了一个btree。

我是否可以使用INLJ (索引嵌套循环连接)算法进行以下连接?

代码语言:javascript
复制
...
FROM FILM,CAST
WHERE FILM.ID = CAST.FILM_ID ;
EN

回答 1

Database Administration用户

发布于 2017-01-30 15:56:11

我非常怀疑它是否会这样做。PostgreSQL还没有实现索引跳过扫描,如果实现了,它们只有在只有少数几个不同的参与者时才会有效。

可以(但不太可能)将索引用于INLJ以外的其他内容。如果role字段非常宽(导致cast表比其上的索引大得多),并且role不在选择列表中,而且该表处于真空状态,那么它可能决定只索引扫描索引,而不是seq扫描cast表,作为合并联接或散列连接的一部分。

(顺便说一下,cast不是一个有效的表名,因为它是一个保留字)

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/162592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档