美文网首页
为什么PG的delete慢

为什么PG的delete慢

作者: hzmangel | 来源:发表于2017-11-06 23:04 被阅读6次

ref: https://www.postgresql.org/message-id/16186.1150464632@sss.pgh.pa.us

场景:

要删除的表articlesarticles中有一个字段是表comments的外键,即:

CREATE TABLE articles (
  id integer PRIMARY KEY,
  content text
);

CREATE TABLE comments (
  content text,
  article_id integer,
  FOREIGN KEY (article_id) REFERENCES articles (id)
);

最简单的办法就是在确认没有错误的情况下,disable trigger,删完后再打开。但是还有一种可能性就是在删除的时候PG会去关联的表中查找有没有关联的记录,本例中就是在删除articles中的东西时会在comments中按article_id查找,如果article_id在此时没有加索引,而且comments和articles表中都有大量数据的时候,就会出现很慢的情况。解决方案就是给comments表中的article_id加上index

CREATE INDEX ON comments (article_id);

相关文章

  • 为什么PG的delete慢

    ref: https://www.postgresql.org/message-id/16186.11504646...

  • PG内核分析 Q&A

    PG内核分析 Q&A PG系统概述 为什么说PG是一种先进的对象—关系数据库系统 因为PG它不仅支持关系数据库的各...

  • 重载Operator new/new[],operator de

    为什么要重载new/new[] ,delete/delete[] 这是因为指针,确实指针是一件让人喜欢的东西,用起...

  • Redis变慢了,你会怎么排查(二)

    存储大key 如果查询慢日志发现,并不是复杂度较高的命令导致的,例如都是SET、DELETE操作出现在慢日志记录中...

  • postgresql搬运

    pg_ctl 名称 pg_ctl -- 启动、停止、重启 PostgreSQL语法 pg_ctl start [-...

  • 通过ruby连接postgresql

    Pg是PostgreSQL RDBMS的Ruby接口。 一、安装pg gem install pg 二、连接数据库...

  • 表的设计

    :普通表的不足 1)表的更新有日志开销 2)表的DELETE不彻底 () 3)大表查询慢 4)索引...

  • 【译】色情网站 Pornhub 利用 Websocket 防止广

    原文地址 我们试图找到 MindGeek 网络上最多的 PG 页面(PG 大概指的是 PG级别,译者注。)作为例子...

  • 1.postgresql命令

    1.导出备份数据 2.基础命令 2.1 定时备份pg 3.pg-docker使用 4.复制远程pg数据到本地pg脚...

  • Pg相关查询语句

    1.查看数据库大小select pg_database.datname,pg_size_pretty(pg_dat...

网友评论

      本文标题:为什么PG的delete慢

      本文链接:https://www.haomeiwen.com/subject/uavrmxtx.html