CREATE TABLE zip_polygons_new(
zipcode MEDIUMINT(5) UNSIGNED NOT NULL,
zip_polygon MULTIPOLYGON NOT NULL,
spatial index (zip_polygon)
);
EXPLAIN
SELECT zipcode
FROM zip_polygons_new zp
WHERE ST_CONTAINS(zp.zip_polygon, ST_GEOMFROMTEXT('POINT(-99.24012 19.53285)'));
我总是得到:
id | select_type | 表分区 | 类型可能的_keys键key_len参考行筛选额外||||
---|---|---|---|---|---|---|
1 | SIMPLE | zp | 所有> | 26376 | 100.0 | 使用其中
事实证明,我没有意识到我mysql@8正在运行,当切换回mysql@5.7现在使用索引。
所以问题是mysql@8,因为我的问题与mysql@5.7我认为这是自我回答。问题可能在于mysql@8期望显式SRID使用空间索引,而mysql@5.7没有。