我有 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 独立服务器A和B。从服务器A我只需要将一个数据库和表同步到服务器B。我应该如何进行?
我有几张桌子需要加入。我有一个员工表(约 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 将 PostgreSQL 9.5 集群升级到 9.6 pg_upgradecluster。这需要很多时间,所以我想取消这个过程,删除不需要的数据库,然后重新开始。有哪些风险?
我如何才能查看 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 数据库。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) 如何从 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,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。
我的任务是在 PostgreSQL 中设计一个表(从未使用过它)来从平面文件加载数据。该表将包含约 110M 行。每行都有一定的 IP 地址范围(例如:0.0.1.0 - 0.0.2.240)和大约 20 个属性。
数据需要每周完全更换一次,每天一次更新将根据每日文件进行。
应用程序将查询此表以获取给定的 IP 地址。需要找到合适的范围并返回属性。
我的计划是根据 IP 的第一个八位字节对表进行分区。这会给我 255 个分区。索引将基于范围的开始和结束 IP。
请让我知道是否有关于分区和索引的更多有用的想法?任何好的做法也会有所帮助。
postgresql ×10
blob ×2
join ×2
performance ×2
acid ×1
amazon-rds ×1
csv ×1
group-by ×1
import ×1
index ×1
mysql ×1
partitioning ×1
psql ×1
vacuum ×1