我写了2个采石场,它们是
1)Select c,c2,c3,c4,c5,c6... from table1 where Id is NULL;
在 table1 中有 10000 条记录,并且列 Id 没有空值。此查询需要 5 分钟。执行。和
2)Select c,c2,c3,c4,c5,c6... from table1 where Id = 'abvccdhu9887687698';
这个查询不到一秒钟。
这个时差是如何产生的
请帮助我..我正在等待您的宝贵建议
我写了2个采石场,它们是
1)Select c,c2,c3,c4,c5,c6... from table1 where Id is NULL;
在 table1 中有 10000 条记录,并且列 Id 没有空值。此查询需要 5 分钟。执行。和
2)Select c,c2,c3,c4,c5,c6... from table1 where Id = 'abvccdhu9887687698';
这个查询不到一秒钟。
这个时差是如何产生的
请帮助我..我正在等待您的宝贵建议
请参阅此Tom Kyte 帖子。
基本上,如果您在 ID 列上创建的索引是 B 树索引,那么它不会索引null
ID 列中具有值的记录。
所以在查询 (1) 中它不使用索引,而在查询 (2) 中它使用。
(ID,0)
有一种解决方法-您可以在(不仅仅是在(ID)
)上创建索引。