【发布时间】:2021-08-03 06:40:28
【问题描述】:
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 | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SIMPLE | zp | ALL | 26376 | 100.0 | Using where |
我试过了:
- InnoDB 和 MyIsam。
- 几个空间函数(例如 MBRCONTAINS、ST_CONTAINS)。
- 在 WHERE 子句的 RHS 上将等于 1。
已检查: MySQL 文档 Mysql Spatial index unused Why Spatial index not used by MySQL?
我缺少什么才能使用索引?
【问题讨论】:
标签: mysql sql indexing spatial