MySQL NOT IS NULL行为

时间:2019-11-27 06:55:09

标签: mysql null sql-execution-plan notnull

为什么 NOT NULL 条件会强制Mysql检查整个表,而不是只查看子查询结果?

mysql-is-null

mysql-not-is-null

为什么在这个查询和以前的查询中解释相同,为什么我尝试在某些子查询之后进行过滤?

enter image description here

1 个答案:

答案 0 :(得分:0)

这不特定于NOT NULL。查询计划者认为这样做会更有效率。 当超过50%的行匹配时,使用索引跳过通常会更快。 您可以ANALYZE TABLE以确保计划者掌握最新信息,或者FORCE INDEX以确保自己了解更多信息。

此查询是否仅是为了支持该问题或实际使用中?创建临时表sub并在之后对其进行过滤是不理想的。