标签: mysql null sql-execution-plan notnull
为什么 NOT NULL 条件会强制Mysql检查整个表,而不是只查看子查询结果?
为什么在这个查询和以前的查询中解释相同,为什么我尝试在某些子查询之后进行过滤?
答案 0 :(得分:0)
这不特定于NOT NULL。查询计划者认为这样做会更有效率。 当超过50%的行匹配时,使用索引跳过通常会更快。 您可以ANALYZE TABLE以确保计划者掌握最新信息,或者FORCE INDEX以确保自己了解更多信息。
NOT NULL
ANALYZE TABLE
FORCE INDEX
此查询是否仅是为了支持该问题或实际使用中?创建临时表sub并在之后对其进行过滤是不理想的。
sub