1

我不太确定索引是如何工作的。

这是我的理解,如果我错了,请纠正我或确认我是否正确:
我有疑问:

SELECT * FROM people WHERE age < 40 AND country = 'United States'

我的索引在country现场。
它首先搜索国家(因为有一个索引),制作一个结果列表,然后搜索一个列表age < 40。我对吗?

4

1 回答 1

4

可能是 DBMS 选择做的事情。您的 DBMS 将查看 SQL 并生成一些可能的“执行计划”,找出它们的“昂贵”程度,然后选择最好的。当然,您描述的计划是 DMBS 可能会考虑的计划,但不能 100% 保证选择该计划。

这取决于许多其他因素,包括数据的样子。DBMS 会尽可能早地选择过滤数据的计划,以使流经系统的数据最小化。如果 DBMS 可以看到国家/地区很少 = 'United States',它可能会选择首先处理查询的那部分。这将使后续操作更便宜。

有关更多信息,请运行MYSQL EXPLAIN文档)以查看 DBMS 选择做什么。

于 2012-07-03T00:01:21.707 回答