Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在对我的数据执行一些 sql 语句,我有以下情况。
选择语句看起来像这样
select * from t1, t2 where t1.id = t2.t1_id t1.c1 = 'X' and t1.c2 in ('Y', 'Z')
运行解释计划,我看到 col2 过滤的成本为 11(带有过滤谓词的表访问)和 col1 1(表访问索引)。
如何降低在 col2 上的搜索成本?我应该在查询中添加任何提示吗?
提前致谢,
我更喜欢查询的 ANSI 语法:
select * from t1 join t2 on t1.id = t2.t1_id where t1.c1 = 'X' and t1.c2 in ('Y', 'Z');
考虑 和 上的t1(c1, c2, id)索引t2(t1_id)。第一个索引应该用于从t1. 第二个应该加快加入到t2.
t1(c1, c2, id)
t2(t1_id)
t1
t2
编辑:
根据 David 的评论,索引的t1(c1, c2)表现可能会稍好一些。
t1(c1, c2)