标签: postgresql

将 100 个 csv 文件导入 postgresql

我有 100 个 csv 文件,依次命名为 1,2,3....100.csv

我用这个脚本复制 csv 文件:

COPY location FROM 'C:\Program Files\PostgreSQL\9.5\data\´1.csv' DELIMITER ','; 
Run Code Online (Sandbox Code Playgroud)

我会用一个涵盖所有文件(1,2,3 .... 100.csv)的脚本来执行复制。

我在 MS Windows 上使用 pgadminIII

postgresql import csv

4
推荐指数
1
解决办法
3438
查看次数

需要将 postgresql 数据库同步到远程

我有两个 PostgreSQL 独立服务器AB。从服务器A我只需要将一个数据库和表同步到服务器B。我应该如何进行?

postgresql

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

如何使用连接加速查询

我有几张桌子需要加入。我有一个员工表(约 40 万行)、一个公司表(约 1000 万行)和一个存储某人工作地点的员工公司表。

基本上,我需要让所有符合某些条件的员工(他们在拥有网站的公司工作,位于某个国家/地区等)。我进行了查询以获取此信息,但花费的时间太长。我需要加快速度。

SELECT  DISTINCT "employees".* 
FROM "employees" 
INNER JOIN "employee_companies" ON "employee_companies"."employee_id" = "employees"."id" 
INNER JOIN "companies" ON "companies"."id" = "employee_companies"."company_id" 
WHERE (employee_companies.employee_id IS NOT NULL)
AND (companies.website IS NOT NULL) 
AND (employees.country = 'Uruguay') 
ORDER BY employees.connections DESC
Run Code Online (Sandbox Code Playgroud)

这是该查询的计划:

Unique  (cost=877170.24..880752.72 rows=62304 width=1064) (actual time=24023.736..26001.876 rows=73318 loops=1)
  ->  Sort  (cost=877170.24..877326.00 rows=62304 width=1064) (actual time=24023.733..24305.989 rows=77579 loops=1)
        Sort Key: employees.connections DESC, employees.id, employees.name, employees.link, employees.role, employees.area, employees.profile_picture, employees.summary, employees.current_companies, employees.previous_companies, …
Run Code Online (Sandbox Code Playgroud)

postgresql performance join query-performance

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

如果我中断或取消 `pg_upgradecluster` 会发生什么?

我正在使用 .PostgreSQL 将 PostgreSQL 9.5 集群升级到 9.6 pg_upgradecluster。这需要很多时间,所以我想取消这个过程,删除不需要的数据库,然后重新开始。有哪些风险?

postgresql

4
推荐指数
1
解决办法
1432
查看次数

如何显示大对象 (LOB) 内容?

我如何才能查看 LOB 内容?

\d ticketgrantingticket

              Table "public.ticketgrantingticket"
          Column           |          Type          | Modifiers 
---------------------------+------------------------+-----------
id                         | character varying(765) | not null
number_of_times_used       | numeric(10,0)          | 
creation_time              | numeric(19,0)          | 
last_time_used             | numeric(19,0)          | 
previous_last_time_used    | numeric(19,0)          | 
ticketgrantingticket_id    | character varying(765) | 
expiration_policy          | oid                    | 
authentication             | oid                    | 
services_granted_access_to | oid                    | 
expired                    | boolean                | 
proxied_by                 | character varying(1)   | 
Indexes:
    "ticketgrantingticket_pkey" PRIMARY KEY, btree (id)

SELECT expiration_policy, 
       authentication, 
       services_granted_access_to 
FROM ticketgrantingticket LIMIT 2;

 expiration_policy | authentication | …
Run Code Online (Sandbox Code Playgroud)

postgresql psql blob

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

如何在服务器之间的文件系统级别复制 PostgreSQL 数据库

我在磁盘故障的服务器上有一个大型 PostgreSQL 数据库。pg_dump由于磁盘错误,我无法运行。

我有另一台具有相同操作系统(Ubuntu 16.04)和相同版本的 PostgreSQL (9.5.6) 的服务器。如何将原始数据库文件复制到新服务器?我不在乎读取错误是否会损坏数据库的某些部分,因为我有识别和修复这些问题的方法,但是我需要先复制数据才能修复它。据我所知,读取错误并不多,但即使有一个也会停止 pg_dump。

关于这个主题的维基页面很少,它建议进行“文件系统级复制”,但没有提及如何实际执行此操作。

编辑:我使用 rsync 复制我的数据目录 ( /var/lib/postgresql/9.5/main) 和配置目录 ( /etc/postgresql/9.5/main)。运行sudo service postgresql start无错误新的服务器运行,但尝试通过连接sudo -u postgres psql的回报:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)

并且日志显示:

2017-05-23 15:13:08 EDT [14604-1] [unknown]@[unknown] LOG:  incomplete startup packet
2017-05-23 15:13:08 EDT [14603-2] LOG:  MultiXact member wraparound protections are now enabled …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.5

4
推荐指数
2
解决办法
6791
查看次数

加入时包含 NULL 行

如何从 table_A 中选择所有行,然后连接来自其他表的结果,但包含一个 NULL 行以显示那些没有 table_A_id 的其他表的聚合值?

WITH RECURSIVE transactions_with_children AS (
  SELECT
    table_A_id,
    other_stuff,
    1 AS depth
  FROM transactions
  WHERE transactions.parent_transaction_id IS NULL
  UNION ALL
  SELECT
    table_A_id,
    other_stuff,
    depth + 1 AS depth
  FROM transactions children
    INNER JOIN transactions_with_children parents ON children.parent_transaction_id = parents.id
)

SELECT 
  table_A.id,
  view_B.aggregate_col1, view_B.aggregate_col2,
  view_C.aggregate_col1, view_C.aggregate_col2

FROM table_A
  -- Limit table_A to only records with data from transactions_with_children, but I also need to include
  -- a null row for all transactions_with_children that don't have …
Run Code Online (Sandbox Code Playgroud)

postgresql join group-by

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

如何`vacuumlo` RDS PostgreSQL 数据库?

您可能已经注意到,作为一种完全托管的数据库即服务产品,AWS 关系数据库服务 (RDS) 限制用户空间命令的执行。

我暂存了一个生产数据库,结果我的pg_largeobject表膨胀到了整个持久性虚拟设备容量的 40%。

如何vacuumlo在运行 PostgreSQL 数据库的 RDS 实例上运行(在此处的其他 DBA.SE 问题中得到很好的解释)?

postgresql vacuum blob amazon-rds

4
推荐指数
1
解决办法
3577
查看次数

是否符合 Mysql ACID?

根据 Postgresql,Mysql 是否不符合 ACID?在一些博客中,我看到 Mysql 不符合 ACID。那有多真实?

在这里不要考虑复制,让我们考虑一个独立的,Mysql ACID 的效率如何?

在我对 Mysql-ACID 的理解中。

A - 原子性(如果一个事务失败必须回滚,则应提交所有事务集。是的意味着所有事务都已提交,不意味着即使失败也必须回滚)。

Mysql 中支持的 IE 特性有。

  • 开始交易;..... 犯罪 ;
  • auto_commit=1;

C - 一致性。

(PK,FK,UK,非空)。它遵守数据库的关系和约束。实例只有在删除其子键时才能删除父键。

我 - 隔离。用户与其提交状态之间的隔离。

读取可重复读取未提交读取已提交序列化

D - 耐用性。在数据库崩溃的事件中,innodb 通过从 iblog 文件中应用已提交的事务来恢复数据库并丢弃未提交的事务。

单击此处查看此问题的来源。 - 是因为博客是@2001 创建的吗?

2017 年 6 月 30 日更新:根据“Evan Carroll”的回复,我亲自测试了5.7.18-enterprise 上的博客实验。实验得到的结果好像是Mysql is Not an ACID Compliant。

mysql postgresql acid

4
推荐指数
2
解决办法
7004
查看次数

为包含约 1.1 亿行的表定义物理策略

我的任务是在 PostgreSQL 中设计一个表(从未使用过它)来从平面文件加载数据。该表将包含约 110M 行。每行都有一定的 IP 地址范围(例如:0.0.1.0 - 0.0.2.240)和大约 20 个属性。

数据需要每周完全更换一次,每天一次更新将根据每日文件进行。

应用程序将查询此表以获取给定的 IP 地址。需要找到合适的范围并返回属性。

我的计划是根据 IP 的第一个八位字节对表进行分区。这会给我 255 个分区。索引将基于范围的开始和结束 IP。

请让我知道是否有关于分区和索引的更多有用的想法?任何好的做法也会有所帮助。

postgresql performance index database-design partitioning

4
推荐指数
1
解决办法
127
查看次数