列中的数据顺序在SQL搜索中是否重要?

时间:2015-04-04 20:38:54

标签: sql

我们假设我有一个名为dict的表,其中包含以下数据,其中word列按字母顺序排序。

ID | word | definition
1    a      a's def
2    b      b's def
3    c      c's def

然后我运行查询SELECT * FROM dict WHERE word="a";

我们说我在该表中有一百万行。根据性能,如果word列中的数据按字母顺序排序,或SQL甚至关心数据是否已排序,因此速度是否相同,我的查询会运行得更快吗?

1 个答案:

答案 0 :(得分:4)

SQL表表示无序集。因此,确实没有一个表按特定顺序排列的概念(至少在你了解聚集索引是什么之前)。

如果您希望查询运行得更快,请在word上创建索引:

create index idx_dict_word on dict(word)

这将在索引中查找单词(非常快)。然后取出正​​确的单词。

至于你的问题,如果单词出现在表扫描的开头附近,你可能会开始更快地获得结果。但是,查询必须遍历整个表,因此排序与查询完成无关。