【问题标题】:Postgres partition size increase but no selectable dataPostgres 分区大小增加但没有可选数据
【发布时间】:2021-11-01 12:27:13
【问题描述】:

我有一个 postgres 表,它在列上定义了一个列表分区,如下所示:

create table table1 (
 val varchar(10),
 t_type varchar(10)
) partition by list(t_type);
create table table1_xvals partition of table1 for values in ('xval1','xval2');
create table table1_yvals partition of table1 for values in ('yval1','yval2');

当我将数据插入到 table1 中时,我可以看到表的大小和各个分区都在增加,但是当我尝试从任何这些表中选择数据时,什么都没有显示(select * from )。我创建表格或选择数据的方式有什么问题吗?

【问题讨论】:

  • 这里无法复制。在您的问题中添加以下答案:1)Postgres 版本 2)您的完整 INSERT 查询 3)您的完整 SELECT 查询
  • 对于我的原始评论,我应该添加:4)您如何确定表格的大小?
  • 手动插入按预期工作:插入 table1 (val, t_type) 值 ('test1','xval1'), ('test2','xval2'), ('test3','yval1 '), ('test4','yval2'); ;从表1中选择*;从 table1_xvals 中选择 *;从 table1_yvals 中选择 *;较大的应用程序正在使用 pandas to_sql 批量插入数据 - 所以也许这就是问题所在。现在测试
  • 我的钱没有在导入结束时完成commit
  • re:表格大小 - 我正在通过 dbeaver 查看表格。每隔几秒钟我就会刷新一次,表和分区的大小就会增加

标签: postgresql partition


【解决方案1】:

这很正常。您在单个数据库事务中加载数据,并且数据库事务的效果仅在事务完成(提交)时才可见。如果您使用单个 INSERTCOPY 语句加载数据,则事务将在语句完成后立即结束。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-14
    • 2011-01-20
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2021-10-19
    相关资源
    最近更新 更多