CREATE TABLE t1 ( g GEOMETRY NOT NULL ) ENGINE=InnoDB; ALTER TABLE t1 ADD SPATIAL(g); SET @g1 = ST_GeomFromText('POINT(10 10)'); SET @g2 = ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))'); SET @g3 = ST_GeomFromText('POLYGON((1.79769e+308 1.79769e+308, 20 5, -1.79769e+308 -1.79769e+308, 1.79769e+308 1.79769e+308))'); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL g NULL NULL NULL 1 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); ST_AsText(g) INSERT INTO t1 VALUES(@g1); INSERT INTO t1 VALUES(@g2); INSERT INTO t1 VALUES(@g3); SELECT ST_AsText(g) FROM t1; ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status Engine-independent statistics collected test.t1 analyze status OK EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 1 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); ST_AsText(g) POINT(10 10) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g1); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 2 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); ST_AsText(g) POINT(10 10) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g1); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 1 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); ST_AsText(g) POINT(10 10) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g1); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 1 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); ST_AsText(g) POINT(10 10) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 1 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); ST_AsText(g) POINT(10 10) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g2); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 1 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g2); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 1 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g2); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 1 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g2); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 2 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range g g 34 NULL 2 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g3); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g3); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g3); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g3); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); ST_AsText(g) POINT(10 10) POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) DROP TABLE t1;