小编use*_*074的帖子

postgresql:如何禁用表的所有索引

我的表上有 100 多个索引。我想临时禁用所有索引,并希望在索引完成后重新启用它们。

键入每个索引名称来禁用它是不可行的。是否有任何 PostgreSQL 语句可以临时禁用所有索引,然后再次重新启用它们。

问候,

postgresql

7
推荐指数
1
解决办法
2万
查看次数

Postgresql:当在 postgresql 中删除临时表时

我正在将数据插入临时表并且它工作正常。下面是相同的 psedo sql 代码

with cte as(

)
select * 
into temp_table
from cte
Run Code Online (Sandbox Code Playgroud)

使用这种方法,数据可以非常快地插入临时表中。根据我的知识,一旦会话关闭,临时表就会被删除。但是即使关闭了我的 pgadmin 连接,我的临时表也不会被删除。

我的问题是 postgresql 中的临时表是自动删除还是保留在磁盘空间上,直到我们删除它们。

问候,

桑杰·萨伦赫

postgresql temporary-tables

6
推荐指数
2
解决办法
1万
查看次数

PostgreSQL:为什么 CREATE TABLE AS 比 CREATE ... INSERT INTO 快?

以下是同一事物的两种不同语法。

  1. 带有COPY TABLE AS SELECT( CTAS)。

    CREATE TABLE main
    AS
      SELECT *
      FROM other;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 作为单独的语句CREATE TABLEINSERT INTO

    CREATE TABLE main (like other);
    
    INSERT INTO main
    SELECT *
    FROM other;
    
    Run Code Online (Sandbox Code Playgroud)

我观察到的CTAS比明显快CREATE TABLE.. INSERT。第一个需要 20 秒才能完成执行。第二个语法二需要 1 分 15 秒才能完成执行。

差异的原因可能是什么?

postgresql insert write-ahead-logging bulk-insert ctas

5
推荐指数
1
解决办法
3609
查看次数

无日志表的缺点

为了更快地进行更新,我正在使用:

ALTER TABLE imagingresourceplanning.opnav_fact_revenue_costs SET UNLOGGED ;
Run Code Online (Sandbox Code Playgroud)

这个命令的缺点是什么?

如果系统在更新期间崩溃会发生什么?表中的所有数据都被删除了吗?或者只有正在进行的更新会丢失?

postgresql write-ahead-logging unlogged-tables

5
推荐指数
1
解决办法
4192
查看次数