Questions tagged «postgresql»

PostgreSQL的所有版本。如果该上下文很重要,请添加其他特定于版本的标记,例如postgresql-11。

3
如何获取输出流的通知?
我在函数中有调试消息。这些消息像 RAISE NOTICE 'Value of id : %', id; 我将日志文件设置为 \o messages.txt 然后我要做我需要做的 \i process.sql 当执行终止时,\o。 问题是我没有将通知引起的消息放入messages.txt中。消息显示在屏幕上,但我希望将它们写在messages.txt中 我该怎么办? 我尝试使用,RAISE LOG...并且消息被写在日志文件中……这不是我想要的。 我有一个工作 plsql -f /path/to/process.sql > messages.txt 2>&1 但我想知道如何在plsql客户端上使用\ i和\ o并将消息放入\ o中指定的文件中 我在cygwin上的客户端是psql(PostgreSQL)8.2.11,服务器版本是9.0.7
20 postgresql 



6
是否有任何好的免费工具来管理PostgreSQL数据库?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 4年前关闭。 以前,我曾使用phpmyadmin来管理MySQL数据库,但现在我想管理PostgreSQL数据库。PostgreSQL数据库位于服务器上,而不是网络服务器上,因此我不使用PHP。 是否有任何好的免费工具来管理PostgreSQL数据库? 我已经尝试过pgAdmin III,但是与我以前使用的phpmyadmin相比,它不是一个直观的应用程序。PostgreSQL DBA通常使用什么?他们使用像pgAdmin III这样的图形工具还是主要是命令行工具?

2
如何最好地在PostgreSQL中存储时间戳?
我正在研究PostgreSQL数据库设计,我想知道如何最好地存储时间戳。 假设条件 不同时区的用户将数据库用于所有CRUD功能。 我看了两个选项: timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC') bigint NOT NULL DEFAULT 因为timestamp我会发送一个字符串,该字符串代表INSERT时刻的确切(UTC)时间戳。 因为bigint我会以数字格式存储完全相同的内容。(时区问题是在将毫秒移交给服务器之前处理的,因此始终在UTC中使用毫秒。) 存储a的一个主要优点bigint是可以更容易存储和检索,因为传递正确格式的时间戳比简单的数字(自Unix Epoc以来的毫秒数)要复杂得多。 我的问题是,哪种方法可以进行最灵活的设计,以及每种方法的陷阱是什么?


3
将PostgreSQL数据移动到其他驱动器
我正在使用AWS作为我的云环境。我将PostgreSQL与根实例卷安装在同一驱动器上。我已将第二个驱动器连接并安装到我的实例。现在,我想将所有PostgreSQL数据移动到其他驱动器。我仍处于开发模式,因此如果此时可以简化传输,则可以删除旧数据。做这个的最好方式是什么? 我应该看看PostgreSQL表空间吗?

2
如何创建索引以加快对表达式的聚合LIKE查询?
我可能在标题中提出了错误的问题。这是事实: 我的客户服务人员一直抱怨在基于Django的站点的管理界面上进行客户查找时响应速度慢。 我们正在使用Postgres 8.4.6。我开始记录慢速查询,并发现了这个罪魁祸首: SELECT COUNT(*) FROM "auth_user" WHERE UPPER("auth_user"."email"::text) LIKE UPPER(E'%deyk%') 此查询最多需要32秒才能运行。这是EXPLAIN提供的查询计划: QUERY PLAN Aggregate (cost=205171.71..205171.72 rows=1 width=0) -> Seq Scan on auth_user (cost=0.00..205166.46 rows=2096 width=0) Filter: (upper((email)::text) ~~ '%DEYK%'::text) 因为这是由Django ORM从Django Admin应用程序生成的Django QuerySet中生成的查询,所以我对该查询本身没有任何控制权。索引似乎是合理的解决方案。我尝试创建索引来加快速度,但是并没有什么不同: CREATE INDEX auth_user_email_upper ON auth_user USING btree (upper(email::text)) 我究竟做错了什么?如何加快查询速度?

4
从列表中查找表中不存在的ID
说我有以下架构和数据: create table images( id int not null ); insert into images values(1), (2), (3), (4), (6), (8); 我想执行如下查询: select id from images where id not exists in(4, 5, 6); 但这是行不通的。上面的情况应该返回5,因为它在表记录中不存在。

1
在仅接收INSERT的表上运行VACUUM是否值得?
在2015年的re:Invent谈话中,AWS提到,不仅应在更新或删除之后运行真空,而且还应在插入之后运行真空。这是演讲的相关部分: http://www.youtube.com/watch?v=tZXp19q8RFo&t=16m2s 假设即使块仅接收插入,也必须对其进行一些清理,并且可以在第一次选择块时(降低读取速度)或在真空期间进行清理。这是真的吗?如果是,那么到底必须执行什么清理工作?

2
PostgreSQL最大化性能SSD
我将拥有一个庞大的PostgreSQL 9.3数据库,其中包含许多表,每个表的条目超过100M。该数据库基本上将是只读的(一旦我填写了所有必要的表,并且不再在DB上进行写操作,就不再建立索引)和单用户访问(从本地主机运行并基准化多个查询),因为将使用DB仅用于研究目的。查询将始终在整数DB字段上使用JOIN。 我可能会为此目的购买SSD(256-512GB)。我以前没有为数据库使用SSD,所以我应该担心什么?我可以将整个数据库放到SSD上还是将索引放到硬盘上?调整PostgreSQL的SSD是否需要任何特别的建议/教程?请注意,我有一个不错的工作站,配备了i7和32Gb RAM,因此也许您也可以在那里提供一些建议。

2
恢复转储时禁用所有约束和表检查
我已经获得了PostgreSQL数据库的转储,其中包括: pg_dump -U user-name -d db-name -f dumpfile 然后我继续使用以下命令在另一个数据库中还原: psql X -U postgres -d db-name-b -f dumpfile 我的问题是数据库包含引用约束,检查和触发器,并且其中某些(特别是看起来是检查的)约束在恢复期间失败,因为未按照导致遵守这些检查的顺序来加载信息。例如,在表中插入行可能与CHECK调用plpgsql函数检查条件是否存在于其他不相关的表中的函数相关联。如果后一个表未psql在前一个表之前加载,则会发生错误。 以下是产生这样的数据库的SSCCE,该数据库一旦被转储pg_dump就无法恢复: CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE TABLE IF NOT EXISTS a ( i INTEGER NOT NULL ); …


2
如果查询在逻辑上相似,为什么计划会有所不同?
我编写了两个函数来回答《七周》中“七个数据库”中第3天的第一个作业问题。 创建一个存储过程,您可以在其中输入自己喜欢的电影标题或演员的名字,它将根据演员出演的电影或类似类型的电影返回前五个建议。 我的第一次尝试是正确的但很慢。返回结果最多可能需要2000毫秒。 CREATE OR REPLACE FUNCTION suggest_movies(IN query text, IN result_limit integer DEFAULT 5) RETURNS TABLE(movie_id integer, title text) AS $BODY$ WITH suggestions AS ( SELECT actors.name AS entity_term, movies.movie_id AS suggestion_id, movies.title AS suggestion_title, 1 AS rank FROM actors INNER JOIN movies_actors ON (actors.actor_id = movies_actors.actor_id) INNER JOIN …

3
PostgreSQL:我可以在负载下运行的实时数据库上执行pg_start_backup()吗?
我们已建立的复制已损坏(停机期间“已删除请求的WAL段”)我们无法轻松地再次停止主服务器。 我们可以做 pg_start_backup(), rsync ${PGDATA}/ 主人到奴隶, pg_stop_backup() ...当主postgresql仍处于满负荷状态时?(否则会pg_start_backup()导致 餐桌锁 I / O块 不一致, 火警, 数据库响应缓慢 换句话说,会pg_start_backup()影响我们的应用程序吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.