Answers:
说明正在使用先前收集的统计信息(由查询优化器使用)。做一个select count(*)
读操作,每数据块。
这是一种获取估算的行数的廉价方法:
select TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
where TABLE_NAME='planner_event';
即使您这样做了select count(id)
,它可能仍会花费很长时间,除非您具有辅助索引id
(也假定id
是PRIMARY KEY)。因为所有数据(包括行数据)都存储在B树索引中,所以执行a select count(PK_COLUMN)
仍然是相当数量的IO(需要读取所有数据页)。如果您在PK字段上有二级索引,它将能够执行较少的IO来执行计数。
EXPLAIN
给您的估计值相同。
AND TABLE_SCHEMA='my_database'
,否则,如果在另一个数据库中有一个具有相同名称的表,则将返回多个结果。