我对远程服务器上的数据库具有只读访问权限。所以,我可以执行:
COPY products TO '/tmp/products.csv' DELIMITER ',';
Run Code Online (Sandbox Code Playgroud)
但是在该服务器上我没有创建/保存文件的权限,所以我需要在我的本地机器上执行此操作。
当我连接到远程数据库时,如何执行命令将文件保存在本地计算机而不是远程服务器上?
或者,如何执行 Linux 命令以连接到远程数据库、执行查询并将输出作为文件保存到我的本地计算机?
我是 DBA 新手,我有使用 Microsoft SQL Server 的经验,但我想跳到 FLOSS。
我正在创办一家公司,我们开发了一个带有 Postgres 后端的应用程序 (PHP),我们也做了一些与 MySQL 进行比较的测试。我们观察到 MySQL 的速度是 PostgreSQL 的两倍。
我做了一个有形的性能测试:
我究竟做错了什么?
PS:我阅读了许多关于数据库引擎性能调优的“howtos”。
PS(2):我们在 MySQL 数据库上使用 InnoDB(每个表一个文件)。
嗨垫!
我做了三个常见的选择(和最难的)查询。
关于磁盘的问题,当然不一样;在 Postgres 中,它是一个 SSD(快了几乎三倍)。
MySQL缓存数据:
+------------------------------+----------------------+
| Variable_name | Value |
+------------------------------+----------------------+
| binlog_cache_size | 32768 |
| have_query_cache | YES |
| key_cache_age_threshold | 300 |
| key_cache_block_size | 1024 |
| key_cache_division_limit | 100 |
| max_binlog_cache_size | 18446744073709547520 |
| query_cache_limit | …Run Code Online (Sandbox Code Playgroud) 我找不到一种简单的方法来获取我从 Amazon RDS postgres 实例中获取的每晚备份的副本,以便我可以在本地计算机上恢复它以供使用。
现在,当我需要副本时,我正在执行 pg_dump,但是能够下载这些快照会更好(并且可能更快)。这不可能吗?
我Postgresql 9.1在 Ubuntu 上运行。确切的 Postgresql 版本是9.1+129ubuntu1如我的包管理器所示。
我有 2 个正在使用的数据库,它们是从远程服务器使用的。
我希望记录执行时间较长的查询。所以我在/etc/postgresql/9.1/main/postgresql.conf文件中设置了以下参数
log_min_duration_statement = 10000
log_statement = 'mod'
Run Code Online (Sandbox Code Playgroud)
所以 Postgresql 会记录耗时超过 10 秒的查询。
但是当我reload配置 postgres 时,Postgresql 开始记录每个符合log_statement值的查询。我将持续时间设置为 100 秒以确保
log_min_duration_statement = 100000
Run Code Online (Sandbox Code Playgroud)
但是 Postgresql 会继续记录每个符合log_statement值的查询,而不管值是多少log_min_duration_statement。
设置log_statement为none似乎停止记录。
有什么我错过的配置吗?
postgresql performance logs postgresql-9.1 postgresql-performance
我玩了一场篮球比赛,它允许将其统计数据输出为数据库文件,因此可以从中计算出游戏中未实现的统计数据。到目前为止,我在计算我想要的统计数据时没有遇到任何问题,但现在我遇到了一个问题:从他的比赛统计数据中计算一个球员在整个赛季中取得的双打和/或三双的数量。
双双和三双的定义如下:
双双:
两双是指球员在一场比赛中在五个统计类别中的两个类别(得分、篮板、助攻、抢断和盖帽)中累积达到两位数的总和的表现。
三双:
三双被定义为球员在一场比赛中在五个统计类别中的三个——得分、篮板、助攻、抢断和盖帽——中累计达到两位数的表现。
四双(添加澄清)
四双被定义为球员在一场比赛中在五个统计类别中的四个类别(得分、篮板、助攻、抢断和盖帽)中累计达到两位数的表现。
“PlayerGameStats”表存储玩家玩的每个游戏的统计数据,如下所示:
CREATE TABLE PlayerGameStats AS SELECT * FROM ( VALUES
( 1, 1, 1, 'Nuggets', 'Cavaliers', 6, 8, 2, 2, 0 ),
( 2, 1, 2, 'Nuggets', 'Clippers', 15, 7, 0, 1, 3 ),
( 3, 1, 6, 'Nuggets', 'Trailblazers', 11, 11, 1, 2, 1 ),
( 4, 1, 10, 'Nuggets', 'Mavericks', 8, 10, 2, 2, 12 ),
( 5, 1, 11, 'Nuggets', 'Knicks', 23, 12, 1, 0, 0 ),
( …Run Code Online (Sandbox Code Playgroud) 我偶尔会以 Postgres dB 的形式下载公开可用的数据集。这些数据集由存储库主机随时间更新/修改/扩展。
是否有 Postgres 命令或工具(最好是 FOSS)可以显示旧 Postgres 数据库和新 Postgres 数据库之间的差异?(一个可行的假设是 95% 的条目没有改变,表和关系也没有改变)。
给定一个“SoftwareReleases”表:
| id | version |
| 1 | 0.9 |
| 2 | 1.0 |
| 3 | 0.9.1 |
| 4 | 1.1 |
| 5 | 0.9.9 |
| 6 | 0.9.10 |
Run Code Online (Sandbox Code Playgroud)
我如何产生这个输出?
| id | version |
| 1 | 0.9 |
| 3 | 0.9.1 |
| 5 | 0.9.9 |
| 6 | 0.9.10 |
| 2 | 1.0 |
| 4 | 1.1 |
Run Code Online (Sandbox Code Playgroud) 我最近完成了一个项目,在此期间创建了许多数据库表。
这些表中的大多数都包含临时垃圾,我正在寻找一种简单的方法来列出所有这些表。
有没有办法列出根据创建日期排序的所有数据库表?
给定一个users包含两个字段的表:id和email。
select id, email as electronic_mail
from (
select id, email
from users
) t
where electronic_mail = ''
Run Code Online (Sandbox Code Playgroud)
Postgres 抱怨说:
Run Code Online (Sandbox Code Playgroud)ERROR: column "electronic_mail" does not exist
这个例子只是为了说明出现的问题。我的实际情况更复杂,我遍历 json 列中的元素数组,从每个元素中获取一个标量值。(如果有帮助,我可以分享一些代码。)
我真的不明白会有什么并发症,可能我不知道什么。我的印象是可以在WHERE子句中使用别名列而没有问题?
我有一堆需要与用户帐户关联的布尔值。它们需要在真假之间切换,尽管不是特别频繁——它们被阅读的次数将比写入的次数更多。大多数情况下,它们只会从 False 设置为 True 一次,但情况并非总是如此。
现在我正在考虑将列附加到用户表中:
| 用户身份 | other_user_cols | did_a | did_b | did_c |
|---|---|---|---|---|
| 1 | ... | 错误的 | 真的 | 错误的 |
| 2 | ... | 错误的 | 错误的 | 错误的 |
| 3 | ... | 真的 | 错误的 | 错误的 |
问题是,有很多这样的布尔列。
假设您需要添加 100 列。这真的仍然是最好的方法吗?
认为:
我觉得这一定是一个非常常见的模式,但是这种将更多布尔列塞入我的表的方式似乎相当混乱。有没有更典型的方法来做它更干净一点?或者这实际上是最好的方法?
为此,我正在使用 Postgres。
以下是我考虑过的一些替代方案:
| 用户身份 | 标志名称 | 价值 |
|---|---|---|
| 1 | did_a | 错误的 |
| 1 | did_b | 错误的 |
| 3 | did_a | 真的 |
作为替代方案,这对我来说似乎是最合理的,但不确定是否真的值得麻烦,或者是否有更好的方法。
postgresql ×10
mysql ×2
alias ×1
amazon-rds ×1
backup ×1
copy ×1
count ×1
csv ×1
export ×1
group-by ×1
logs ×1
natural-sort ×1
order-by ×1
performance ×1
schema ×1
sorting ×1
subquery ×1
testing ×1
where ×1