我使用下面的工具脚本在CloudSQL中加载了一个形状文件(.shp,.shx,.dbf)
ogr2ogr -f MySQL MySQL:$DB_NAME,host=$HOST,user=$DB_USER,password=$DB_PWD $SHAPE_FILE -progress -nlt POLYGON -nln geo -update -overwrite -lco GEOMETRY_NAME=geometry -lco engine=MYISAM
当我在我的本地环境(官方docker镜像MySQL 5.6)上运行下面的查询时,发生快速(mseconds)但是当我对cloudsql实例输入相同的查询时,性能非常差(5-7)秒
查询示例:
SELECT count(geometry) from geo where zip='20020'; -- took 9.56s
但是如果我输入没有zip子句的相同查询
SELECT count(geometry) from geo; -- took 0.03s
记录总数为:8959; 我在zip列上有索引。
我有什么遗漏或特殊索引吗?
在ogr2ogr
创建的表格下方CREATE TABLE `geo` (
`OGR_FID` int(11) NOT NULL AUTO_INCREMENT,
`geometry` geometry NOT NULL,
`zip` varchar(5) DEFAULT NULL,
`offices` decimal(9,0) DEFAULT NULL,
`shape_leng` double(19,11) DEFAULT NULL,
`shape_area` double(19,11) DEFAULT NULL,
`version` decimal(9,0) DEFAULT NULL,
UNIQUE KEY `OGR_FID` (`OGR_FID`),
SPATIAL KEY `geometry` (`geometry`)
) ENGINE=MyISAM AUTO_INCREMENT=8960 DEFAULT CHARSET=utf8