小编Jér*_*nge的帖子

关于单线程与多线程数据库性能

H2 是一个单线程数据库,在性能方面享有盛誉。其他数据库是多线程的。

我的问题是:多线程数据库什么时候变得比单线程数据库更有趣?有多少用户?多少个进程?什么是触发器?有人有经验可以分享吗?

概括

  • 通常的瓶颈是磁盘访问
  • SSD 速度很快,但很脆弱(必须执行故障程序)
  • 单线程系统上的一个长查询将阻塞所有其他查询
  • 配置多线程系统可能很棘手
  • 即使在单核系统上,多线程数据库也是有益的

performance database-recommendation

63
推荐指数
5
解决办法
8万
查看次数

PgAdmin III - 如何在密码为空时连接到数据库?

我已经在我的 PC (Win 7) 上安装了 PostgreSQL 9.1。我有一个使用login=sa和成功连接到它的小型 Java 应用程序password=""。连接有效。

但是,它被 PgAdmin III 本身拒绝。我得到:

Error connecting to the server: fe_sendauth: no password supplied
Run Code Online (Sandbox Code Playgroud)

如何使用空密码从 PgAdmin III 连接到我的数据库?

编辑

这只是一个测试,而不是生产代码。

postgresql pgadmin

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

从一组表中删除前缀的 SQL 命令

我不是 DBA。我有一个 MySQL 数据库 (5.0.51a) 的情况,我想删除所有具有此前缀的表(大约 110 个表)的“dr_”前缀。我当然可以一一重命名它们,但我想知道是否有 SQL 命令可以一次性执行此操作?

为了清楚起见,dr_hjkd必须将名为 的表重命名为hjkd。名为的表rfefd将保持相同的名称。谢谢。

mysql

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

SQL Server 可以在单个 INSERT 语句中将多少行处理到一个表中?

为了说明我的问题,以下是一个查询,检测尚未插入数据仓库并插入它们的订单的 id:

With NewOrders 
As
(   
    Select OrderID From Orders
    Except
    Select OrderID From FactOrders
)
Insert Into FactOrders(OrderID, OrderDate, CustomerId)
    Select OrderID, OrderDate, CustomerId From Orders
    Where OrderID in (Select OrderID from NewOrders);
Run Code Online (Sandbox Code Playgroud)

假设查询是第一次运行并且Orders包含 4 亿行或更多行:

SQL Server 能否在一条INSERT语句中处理这么多行?

如果没有,我应该如何进行?我应该限制INSERT语句中提取的行数吗?引擎可以在单个INSERT语句中处理多少行?

data-warehouse sql-server t-sql azure-sql-data-warehouse

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

我应该为非键列创建索引吗?

我在 PostGreSql 数据库中有一个表定义如下:

CREATE TABLE public."MATCH"(
    "ITEM_A_ID" bigint DEFAULT 0,
    "ITEM_B_ID" bigint DEFAULT 0,
    "OWNER_A_ID" bigint DEFAULT 0,
    "OWNER_B_ID" bigint DEFAULT 0,
    "OTHER_DATA" varchar(100) NOT NULL DEFAULT ''
    CONSTRAINT "MATCH_PK" PRIMARY KEY ("ITEM_A_ID","ITEM_B_ID")
);
Run Code Online (Sandbox Code Playgroud)

它将包含很多行。将会对该表执行很多类似以下的查询:

SELECT * FROM "MATCH" WHERE "OWNER_A_ID" = owner_a_id;
SELECT * FROM "MATCH" WHERE "OWNER_B_ID" = owner_b_id;
Run Code Online (Sandbox Code Playgroud)

我正在考虑在OWNER_A_ID和上创建索引OWNER_B_ID,因为这些列不是键。这是一个好主意吗?如果是,我应该如何创建它们?我应该为两列创建一个索引吗?我应该创建两个索引吗?我应该包括其他列吗?

postgresql index

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

从设计的角度来看,SELECT FROM LIKE 语句的开销有多大?

关于需要在大型目录结构中随机访问的小型静态文件的数量不断增加,我遇到了一种情况无法控制。我必须尽快大幅减少这些文件的数量。我正在研究释放压力的快速解决方案。

一种选择是将文件的内容(UTF8 文本)移动到数据库中并执行SELECTs 来替换文件搜索(按名称)。选择语句如下:

SELECT TOP(1) MyContent FROM MyTable WHERE MyContentName LIKE 'criteria%';
SELECT TOP(1) MyContent FROM MyTable WHERE MyContentName LIKE '%othercriteria';
SELECT TOP(1) MyContent FROM MyTable WHERE MyContentName LIKE '%andanothercriteria%';
Run Code Online (Sandbox Code Playgroud)

我们谈论的是每天在 800K 行表上的总共 200K 请求(如果有帮助,我可以轻松地将其拆分为两个)。MyContentName是键的一部分,将被编入索引。要么有一个条目与表中的条件匹配,要么没有。

我不是数据库管理员专家。这是共享服务器上的 MySQL 实例可以支持的东西还是我的期望太高?

我知道典型的答案是:我应该测试。不幸的是,由于紧急情况,我没有时间进行测试。我需要找到一个快速的解决方案,即使是暂时的,即使它会稍微降低服务响应延迟。

我正在寻找有经验的数据库管理员对此策略的意见。也欢迎提示和建议。

mysql performance select query-performance

3
推荐指数
1
解决办法
4649
查看次数

如何在 PostgreSQL 存储过程中生成以毫秒为单位的时间?

我一直在阅读有关时间戳的 Postgres 文档,但我仍然有点困惑。

我需要存储当前时间和 1970 年 1 月 1 日午夜之间的时刻(以毫秒为单位)(类似于Java中定义的时刻,但我没有使用 Java)。

如果我正确阅读文档,我相信我必须使用CURRENT_TIMESTAMP,因为它包含时区。正确的?

有人可以解释如何创建一个存储过程,将该时间戳转换为我想要的毫秒(以及反向函数)吗?

动机:我知道在选择行时可以使用类似EXTRACTon的东西CURRENT_TIMESTAMP,但这种转换比以毫秒为单位存储时间更昂贵。我准备将我的时刻存储到bigint. 比较时刻或计算时间差会更快。

postgresql stored-procedures timestamp

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

解释 PostgreSql ssl_cipher 值: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH

在该postgresql.conf文件中,可以配置 的授权值ssl_cipher。但我找不到解释 ALL、ADH、LOW、EXP、MD5 和 STRENGTH 值对应的文档。

我猜MD5是指相应的MD5算法,但是其他值呢?我认为 LOW 不应该在生产环境中使用。

postgresql configuration ssl

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