pg 分区表如果不设主键,而设置唯一索引,会对性能有什么影响吗, 主要是递增序列 id 字段很多时候都不在分区字段里,这种情况应该怎么处理比较好.
比如有一个用户道具分区表, 有字段 id, user_id, item_id, amount. 通过 user_id 来分区,这种情况怎么建立索引好. 是建立 user_id,item_id 的复合主键,还是唯一索引, id 递增序列该怎么处理. 主要查询是通过 user_id 查列表或某个道具
大神们一般是怎么做的,求指教.第一次用 pg,之前都是 mysql,有些地方不太懂
1
sagaxu 68 天前
跟 MySQL 不同的是,pgsql 里面,primary key = unique B-tree index + not null ,如果都是 not null ,你用复合主键还是唯一索引,性能上没有区别。
题外话,用 user_id 来分区是糟糕的设计。 All constraints on all children of the parent table are examined during constraint exclusion, so large numbers of children are likely to increase query planning time considerably. So the legacy inheritance based partitioning will work well with up to perhaps a hundred child tables; don't try to use many thousands of children. |