Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL索引说明_Mysql - Fatal编程技术网

MySQL索引说明

MySQL索引说明,mysql,Mysql,我不太清楚索引是如何工作的 我是这样理解的,如果我错了,请纠正我,如果我是对的,请确认: 我有一个疑问: SELECT * FROM people WHERE age < 40 AND country = 'United States' 从年龄 这取决于许多其他因素,包括数据的外观。DBMS将尽可能早地选择过滤数据的计划,以使流经系统的数据最小化。如果DBMS可以看到很少有国家=‘美国’,它可能会选择首先处理查询的这一部分。这将使后续操作更便宜 有关更多信息,请运行MYSQL EXPLA

我不太清楚索引是如何工作的

我是这样理解的,如果我错了,请纠正我,如果我是对的,请确认:
我有一个疑问:

SELECT * FROM people WHERE age < 40 AND country = 'United States'
从年龄<40岁且国家='美国'的人群中选择*
我的索引位于
country
字段中。
它首先搜索国家(因为有索引),列出结果列表,然后搜索
年龄<40
的列表。 我说得对吗?

这可能是DBMS选择做的事情。您的DBMS将查看SQL并生成一些可能的“执行计划”,找出它们的“成本”,然后选择最好的一个。当然,您所描述的计划是DMSB可能会考虑的,但它不是100%保证选择该计划。< /P> 这取决于许多其他因素,包括数据的外观。DBMS将尽可能早地选择过滤数据的计划,以使流经系统的数据最小化。如果DBMS可以看到很少有国家=‘美国’,它可能会选择首先处理查询的这一部分。这将使后续操作更便宜

有关更多信息,请运行MYSQL EXPLAIN查看DBMS选择执行的操作。

这可能是DBMS选择执行的操作。您的DBMS将查看SQL并生成一些可能的“执行计划”,找出它们的“成本”,然后选择最好的一个。当然,您所描述的计划是DMSB可能会考虑的,但它不是100%保证选择该计划。< /P> 这取决于许多其他因素,包括数据的外观。DBMS将尽可能早地选择过滤数据的计划,以使流经系统的数据最小化。如果DBMS可以看到很少有国家=‘美国’,它可能会选择首先处理查询的这一部分。这将使后续操作更便宜

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