MySQL 5.7无法获取要使用的空间索引


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)'));

我总是得到:

表类型可能的_keys键key_len参考行筛选额外所有>使用其中
idselect_type分区
1SIMPLEzp26376100.0

事实证明,我没有意识到我mysql@8正在运行,当切换回mysql@5.7现在使用索引。

所以问题是mysql@8,因为我的问题与mysql@5.7我认为这是自我回答。问题可能在于mysql@8期望显式SRID使用空间索引,而mysql@5.7没有。

最新更新