小编Rob*_*ves的帖子

PostgreSQL:使用复合键对大型表进行查询时性能不佳

我们有一个包含 180m 行、大小为 20 GB 的表。\n表 DDL 为:

\n
create table app.table\n(\n    a_id    integer   not null,\n    b_id    integer   not null,\n    c_id    integer   not null,\n    d_id    integer   not null,\n    e_id    integer   not null,\n    f_id    integer   not null,\n    a_date  timestamp not null,\n    date_added          timestamp,\n    last_date_modified  timestamp default now()\n);\n
Run Code Online (Sandbox Code Playgroud)\n

价值分布:

\n
    \n
  • a_id 的范围是 0-160,000,000
  • \n
  • b_id 有一个值(该表是分区表的单个分区的副本,并且该 ID 恰好是分区键)
  • \n
  • c_id的范围是0-4
  • \n
  • d_id 有一个值(当前)
  • \n
  • e_id 有一个值(当前)
  • \n
\n

主键是复合键:

\n
create table app.table\n(\n    a_id    integer   not null,\n    b_id    integer   not …
Run Code Online (Sandbox Code Playgroud)

sql postgresql postgresql-performance amazon-aurora postgresql-12

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

1971 年 C# BST 时区周期(Windows 与 Linux)的差异

我的系统设置为伦敦 (GMT) 时间,区域设置设置为英国默认值。

在 Ubuntu 16.04、.NET Core 1.1 上运行时,此代码会生成以下内容:

DateTime.Now: 27/01/2017 11:03:31
DateTime.UtcNow: 27/01/2017 11:03:31

new DateTime(1968, 02, 18).ToUniversalTime(): 18/02/1968 00:00:00
new DateTime(1968, 02, 19).ToUniversalTime(): 18/02/1968 23:00:00

new DateTime(1971, 10, 31).ToUniversalTime(): 30/10/1971 23:00:00
new DateTime(1971, 11, 01).ToUniversalTime(): 01/11/1971 00:00:00
Run Code Online (Sandbox Code Playgroud)

这些表达式在 Windows Server 2008 R2、.NET Core 1.1(以及 .NET Framework 4.5.1)上运行时,会生成:

DateTime.Now: 27/01/2017 10:55:47
DateTime.UtcNow: 27/01/2017 10:55:47

new DateTime(1968, 02, 18).ToUniversalTime(): 18/02/1968 00:00:00
new DateTime(1968, 02, 19).ToUniversalTime(): 19/02/1968 00:00:00

new DateTime(1971, 10, 31).ToUniversalTime(): 30/10/1971 23:00:00
new DateTime(1971, 11, 01).ToUniversalTime(): 01/11/1971 00:00:00
Run Code Online (Sandbox Code Playgroud)

BST …

.net c# linux timezone .net-core

5
推荐指数
0
解决办法
370
查看次数