我正在使用PostgreSQL从表中获取“ IP to City”数据,但是响应时间太长。我还在网络列上使用 btree 索引。
我的查询是:
SELECT 城市名称,分区,国家/地区名称,大陆名称 FROM ip4_to_city_tbl 位置'104.225.250.92'<< =网络 LIMIT 1;
表“ ip4_to_city_tbl”具有 9685491 记录。
如果我们在一秒钟内收到超过400个请求,则需要200到900毫秒来响应。
我希望查询在10毫秒内得到响应。
EXPLAIN命令在ip4_to_city_tbl查询上显示 Seq Scan (而不是索引扫描)
所以请告诉我,应该怎样做才能改善响应时间?哪种索引最适合PostgreSQL inet数据类型?
答案 0 :(得分:2)
通常,inet_ops索引类型是inet和cidr数据类型的首选。
create index on ip4_to_city_tbl using gist (network inet_ops);