请教一个组合索引的多情况判断问题

[复制链接]
查看11 | 回复5 | 2011-11-1 16:20:28 | 显示全部楼层 |阅读模式
有一张表,只有一个组合索引,通过组合索引才能确定记录的唯一性,现在的问题是,假设我在选择记录的时间,是通过组合索引进行判断的,比如类似于下面这样:
SELECT *
FROM T1
WHERE
(
T1.A1 = '...'
T1.A2 = '...'
T1.A3 = '...'
)
OR
(
T1.A1 = '...'
T1.A2 = '...'
T1.A3 = '...'
)
当条件越多,SQL就越长,速度也越慢,我测试一张表,选择上100条记录之后,速度达到了30多秒!
请问这样的情况该如何处理?

回复

使用道具 举报

千问 | 2011-11-1 16:20:28 | 显示全部楼层
如果组合索引创建为唯一索引,不应该是30秒吧
回复

使用道具 举报

千问 | 2011-11-1 16:20:28 | 显示全部楼层
mkstone 发表于 2011-9-17 20:24
如果组合索引创建为唯一索引,不应该是30秒吧

如果是几条,基本上也就是秒开,但是当选择达到上百条之后,SQL语句变得很长(近千行了),测试下来要30多秒
回复

使用道具 举报

千问 | 2011-11-1 16:20:28 | 显示全部楼层
不懂 你的越长 是什么样子的
如果 是or 增多
变慢是很正常的
回复

使用道具 举报

千问 | 2011-11-1 16:20:28 | 显示全部楼层
一条记录就是一个OR
回复

使用道具 举报

千问 | 2011-11-1 16:20:28 | 显示全部楼层
各位,不好意思,是我写错了,OR里面有个字段用了一个不是索引的字段
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行