У меня есть база данных с двумя таблицами, областями и свойствами, состоящая из 1 миллиона строк. Теперь мы обнаруживаем, сколько свойств лежат в пределах данной области, мы используем этот запрос, но это требует времени для извлеченияST_Intersects Время для получения результата
SELECT count(*) FROM properties
WHERE ST_Intersects(geom, '01030000000100000005000000456458C51B375240C173EFE1922333400E10CCD1E3375240335019FF3E23334011AAD4EC81385240E4BD6A65C227334068B3EA73B5375240FA449E245D2B3340456458C51B375240C173EFE192233340')
Есть ли лучший подход, который мы можем следовать?
План выполнения
"Aggregate (cost=38932.37..38932.38 rows=1 width=0)"
" -> Bitmap Heap Scan on properties (cost=463.41..38921.03 rows=4533 width=0)"
" Recheck Cond: (geom && '01030000000100000005000000456458C51B375240C173EFE1922333400E10CCD1E3375240335019FF3E23334011AAD4EC81385240E4BD6A65C227334068B3EA73B5375240FA449E245D2B3340456458C51B375240C173EFE192233340'::geometry)"
" Filter: _st_intersects(geom, '01030000000100000005000000456458C51B375240C173EFE1922333400E10CCD1E3375240335019FF3E23334011AAD4EC81385240E4BD6A65C227334068B3EA73B5375240FA449E245D2B3340456458C51B375240C173EFE192233340'::geometry)"
" Index Cond: (geom && '01030000000100000005000000456458C51B375240C173EFE1922333400E10CCD1E3375240335019FF3E23334011AAD4EC81385240E4BD6A65C227334068B3EA73B5375240FA449E245D2B3340456458C51B375240C173EFE192233340'::geometry)"
У вас есть индекс GiST над 'geom'? – zerkms
Да, есть CREATE INDEX geom_properties_idx ON свойства ИСПОЛЬЗОВАНИЕ gist (geom); – lampdev
А каков план выполнения для данного запроса? – zerkms