【问题标题】:PostgreSQL node.js prepared statements maximum bindingsPostgreSQL node.js 准备好的语句最大绑定
【发布时间】:2016-07-24 07:09:49
【问题描述】:

我正在尝试通过 node-postgres 对 Postgres 进行一些大批量插入 当绑定数组超过 65536 个值时,然后将其余值传递给 postgres,当它运行查询时,我会出错

[error: bind message supplies 4 parameters, but prepared statement "" requires 65540]

有什么想法吗? 提前致谢。

【问题讨论】:

    标签: node.js postgresql prepared-statement node-postgres


    【解决方案1】:

    node-postgres 中的预处理语句不适合批量插入,因为它们不支持多查询语句。而且你不应该同时在所有插入中拉伸变量数组,这不会很好地扩展,它有自己的限制,就像你在那里打的那个。

    相反,您应该使用多值插入,格式如下:

    INSERT INTO table(col1, col2, col3) VALUES
    (val-1-1, val-1-2, val-1-3),
    (val-2-1, val-2-2, val-2-3),
    ...etc
    

    在这样的查询中拆分批量插入,最多包含 1,000 - 10,000 条记录,具体取决于每条记录的大小,并作为简单查询执行。

    另请参阅Performance Boost 文章,以更好地了解INSERT 的可扩展性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-27
      • 2013-06-16
      • 2022-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      相关资源
      最近更新 更多