我们假设我有一个名为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
甚至关心数据是否已排序,因此速度是否相同,我的查询会运行得更快吗?
答案 0 :(得分:4)
SQL表表示无序集。因此,确实没有一个表按特定顺序排列的概念(至少在你了解聚集索引是什么之前)。
如果您希望查询运行得更快,请在word
上创建索引:
create index idx_dict_word on dict(word)
这将在索引中查找单词(非常快)。然后取出正确的单词。
至于你的问题,如果单词出现在表扫描的开头附近,你可能会开始更快地获得结果。但是,查询必须遍历整个表,因此排序与查询完成无关。