如何通过字符串优化flask_admin搜索

时间:2018-09-11 18:42:34

标签: postgresql flask-admin

我在文本列上创建了一个索引,但是使用过滤器(包含)进行搜索仍然需要15秒,而(等于)需要大约4秒。

在烧瓶管理搜索框中进行的搜索同样很慢。

那么优化此搜索的方法是什么?顺便说一句:我说的是900万个字符串。仅在纯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)

0 个答案:

没有答案