关于MySql行为的查询

关于MySql行为的查询,mysql,database,Mysql,Database,我想知道MySql的一个行为。比如,我需要从上一个月的记录中搜索表中的一条信息,我在该表中有几年的记录。在这方面MySql将做什么??MySql会在整个表中搜索几年的记录吗 这取决于表结构和用于获取数据的查询类型 如果您在where子句中使用的date列上使用索引,那么MySQL将只搜索上个月行中的数据,否则MySQL需要扫描整个表。如果您对该列执行了任何索引/分区,那么它将只搜索表的特定区域,而不是整个表但是如果您没有使用任何优化技术,如索引或分区,那么它将搜索整个表。您的表上有任何索引/分区

我想知道MySql的一个行为。比如,我需要从上一个月的记录中搜索表中的一条信息,我在该表中有几年的记录。在这方面MySql将做什么??MySql会在整个表中搜索几年的记录吗


这取决于表结构和用于获取数据的查询类型


如果您在where子句中使用的date列上使用索引,那么MySQL将只搜索上个月行中的数据,否则MySQL需要扫描整个表。

如果您对该列执行了任何索引/分区,那么它将只搜索表的特定区域,而不是整个表
但是如果您没有使用任何优化技术,如索引或分区,那么它将搜索整个表。

您的表上有任何索引/分区吗?如果我有索引或没有索引,MySql会怎么做?已经回答了!)谢谢你的回复。索引如何防止MySql扫描整个表??我认为MySql将遍历整个表的日期列。不,它将创建单独的索引页,并根据匹配的日期获取唯一相关的数据