Как оптимизировать поиск flask_admin по строкам - PullRequest
0 голосов
/ 11 сентября 2018

Я создал индекс для текстового столбца, но поиск с использованием фильтров (содержит) по-прежнему занимает около 15 секунд, а (равно) занимает около 4 секунд.

Поиск в окне поиска администратора фляги аналогиченмедленно.

Так, как бы можно было оптимизировать этот поиск?Кстати, я говорю 9 миллионов строк.Простой поиск в чистом Python будет намного быстрее (когда в памяти).

Вот анализ:

... text = 'project'

Aggregate  (cost=546598.03..546598.04 rows=1 width=0) (actual time=1742.969..1742.969 rows=1 loops=1)
   ->  Seq Scan on twitter  (cost=0.00..546597.64 rows=156 width=0) (actual time=1742.966..1742.966 rows=0 loops=1)
         Filter: ((text)::text = 'project'::text)
         Rows Removed by Filter: 9129062
 Planning time: 0.159 ms
 Execution time: 1743.000 ms
(6 rows)

... text ilike '%project%'

 Aggregate  (cost=547376.38..547376.39 rows=1 width=0) (actual time=18154.062..18154.062 rows=1 loops=1)
   ->  Seq Scan on twitter  (cost=0.00..546635.55 rows=296332 width=0) (actual time=0.177..18101.235 rows=498397 loops=1)
         Filter: ((text)::text ~~* '%project%'::text)
         Rows Removed by Filter: 8631301
 Planning time: 1.142 ms
 Execution time: 18154.104 ms
(6 rows)
...