【发布时间】:2020-02-18 01:19:10
【问题描述】:
我在 Google Cloud Spanner 中有一个包含 8.6 亿行的表格,我正在尝试了解解释的工作原理。
该表有一个字符串列geoid,并且该列有一个索引。
当我运行以下查询时,它只需要 36 毫秒:
SELECT count(*)
FROM usbg_2015
WHERE geoid= '340170175001'
表结构为:
CREATE TABLE usbg_2015 (
geoid STRING(12),
quadkey STRING(24),
) PRIMARY KEY (geoid, quadkey)
但是,我不明白为什么解释说它使用 Table Scan 而不是 Index Scan。我将 表扫描 理解为对表的完整扫描,在这种情况下读取 860M 行,它应该花费超过 36 毫秒的时间。我错过了什么?
【问题讨论】:
-
仅供参考,全表扫描在解释中明确指出:“表扫描:mytable (full scan: true)”