· 8 years ago · Jan 03, 2018, 11:26 AM
1CREATE TABLE IF NOT EXISTS tbl1(id INTERNAL PRIMARY KEY UNIQUE, name TEXT NOT NULL);
2SELECT AddGeometryColumn('tbl1', 'geom', 4326, 'POINT', 'XY');
3SELECT CreateSpatialIndex('tbl1', 'geom');
4
5spatialite> select count(*) from tbl1 where ST_Within(tbl1.geom,
6PolyFromText('POLYGON((-179 53, 179 53, 179 50, -179 50, -179 53))', 4326)) == 1;
732399
8CPU Time: user 1.552150 sys 0.063322
9
10spatialite> select count(*) from tbl1 where ST_Within(tbl1.geom,
11PolyFromText('POLYGON((-179 53, 179 53, 179 50, -179 50, -179 53))', 4326)) == 1 AND
12tbl1.ROWID IN (select ROWID from SpatialIndex where f_table_name = 'tbl1' AND f_geometry_column='geom' AND search_frame = tbl1.geom);
1332399
14CPU Time: user 3.325508 sys 0.066661