相关疑难解决方法(0)

在PostgreSQL中计算和节省空间

我有一个像pg这样的表:

CREATE TABLE t (
    a BIGSERIAL NOT NULL,               -- 8 b
    b SMALLINT,                         -- 2 b
    c SMALLINT,                         -- 2 b
    d REAL,                             -- 4 b
    e REAL,                             -- 4 b
    f REAL,                             -- 4 b
    g INTEGER,                          -- 4 b
    h REAL,                             -- 4 b
    i REAL,                             -- 4 b
    j SMALLINT,                         -- 2 b
    k INTEGER,                          -- 4 b
    l INTEGER,                          -- 4 b
    m REAL,                             -- 4 b
    CONSTRAINT a_pkey PRIMARY KEY (a)
);
Run Code Online (Sandbox Code Playgroud)

以上每行最多可添加50个字节.我的经验是,我需要另外40%到50%的系统开销,甚至没有任何用户创建的索引.所以,每行约75个字节.我将在表中有许多行,可能超过1450亿行,因此该表将推动13-14太字节.我可以使用什么技巧来压缩这个表?我的可能想法如下......

将 …

postgresql storage database-design bigdata

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

如何在现有表中的特定位置添加列

我创建了一个包含85列的表,但我错过了一列.错过的列应该是第57行(列的位置).我不想删除该表,也不想再创建它,我需要编辑该表,我必须在第57行添加该列

ALTER table table_name
Add column column_name57 integer
Run Code Online (Sandbox Code Playgroud)

如何在第57行调用该列

mysql sql

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

PostgreSQL:在Rails迁移中使用add_column"after"选项

我正在尝试在"位置"列之后向现有的Postgres表添加一个新列"纬度".

使用此语法将列放在正确的位置:

add_column :table, :column, :decimal, :after => :existing_column
Run Code Online (Sandbox Code Playgroud)

使用此语法可确保该字段是正确的数据类型

add_column :table, :column, :decimal, {:precision => 10, :scale => 6}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将两者结合起来时:

add_column :table, :column, :decimal, {:precision => 10, :scale => 6}, :after => :existing_column
Run Code Online (Sandbox Code Playgroud)

我得到"ArgumentError:错误的参数数量(5为3..4)"

"不用担心",我想,"我只会把争论结合起来!":

add_column :table, :column, :decimal, {:precision => 10, :scale => 6, :after => :existing_column}
Run Code Online (Sandbox Code Playgroud)

但是这些列出现在表的末尾.我究竟做错了什么?

谢谢 :)

postgresql hash ruby-on-rails database-migration

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