gpt4 book ai didi

Python Postgres 按多列排序然后创建新索引

转载 作者:行者123 更新时间:2023-11-29 13:12:48 25 4
gpt4 key购买 nike

我正在使用 psycopg2 连接到 postgres 数据库。

数据库有大约 2 亿行,我正在尝试创建一个按几列顺序排序的主键,即

part_id, date, time
A001 2014-10-23 00:00:00
A001 2014-10-23 00:00:10
...
A002 2014-10-23 00:00:00

我可以做以下事情:

ALTER TABLE data ADD COLUMN ID SERIAL PRIMARY KEY;

但是我如何先按 part_id 排序(尽管它是 varchar 是部分数字,如上所述),然后是日期,然后是时间,然后为排序的表创建 id 列?

最佳答案

您可以在树列上添加主键:

alter table data add primary key(part_id, date, time);

但是,许多有经验的 SQL 开发人员认为主键应该只用于标识行和其他任何东西。根据这种方法,您应该使用一个简单的 id 主键并在必要时创建其他索引,例如

alter table data 
add id serial primary key,
add unique (part_id, date, time);

这可能看起来不太理想,因为它需要两个索引而不是一个索引,但在实践中它很舒服并且避免了一些不必要的并发症。

我强烈建议不要尝试创建一个整数列来反射(reflect)根据其他列的顺序。

关于Python Postgres 按多列排序然后创建新索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52793164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com