首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何加快PostgreSQL中的插入请求?

如何加快PostgreSQL中的插入请求?
EN

Stack Overflow用户
提问于 2019-12-18 06:19:34
回答 1查看 150关注 0票数 0

PostgreSQL数据库中,我有这样的表:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS layers (ID NUMERIC, GEOM GEOMETRY, CITY VARCHAR, AGGREGATION_METHOD VARCHAR, INFO JSON);

我将尝试用以下一个查询将~700记录插入到该表:

代码语言:javascript
复制
INSERT INTO layers (ID, GEOM, CITY, AGGREGATION_METHOD, INFO) VALUES
(107509018555, '0203000020E61000000100000005000000000000808531534000000020749D4540000000808531534000000080159E4540000000201731534000000080159E4540000000201731534000000020749D4540000000808531534000000020749D4540', 'New York', 'MONTHLY', '[{"time":"2019-10-01T00:00:00Z","gender_details":[{"gender":"Male"},{"gender":"Female"}]}]'),
(107509018556, '0303000020E610000001000000050000000000008085315340000000A0D29A4640000000808531534000000020749D4540000000201731534000000020749D45400000002017315340000000A0D29C45400000008085315340000000A0D29C4540', 'London', 'MONTHLY', '[{"time":"2019-10-01T00:00:00Z","gender_details":[{"gender":"Male"},{"gender":"Female"}]}]')
... other 698 values

该查询运行9-10秒。有办法加快PostgreSQL数据库中的插入请求吗?

PostgreSQL版本: 11.0 (运行在红帽上)

查询计划:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-18 09:42:55

  1. 如果您的表上有任何识别码或外键,它们肯定会减慢执行速度。您可以考虑在表中插入数据,而不使用indeces,并在以后创建数据。检查是否也有触发器。
  2. 您还可以尝试使用复制命令加载数据。比插入快。
  3. 如果磁盘速度慢--这可能是一个问题,您可以尝试使用未登录表,以便在加载操作期间生成更少的WAL段。但是请注意,这种方法也有缺点。

Off主题:考虑使用JSONB类型而不是JSON。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59386454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档